给url 添加json参数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了给url 添加json参数相关的知识,希望对你有一定的参考价值。

参考技术A parseParam(param, key, encode)

                if(param==null) return ''; 

                var paramStr = ''; 

                var t = typeof (param); 

                if (t == 'string' || t == 'number' || t == 'boolean')  

                    paramStr += '&' + key + '=' + ((encode==null||encode) ? encodeURIComponent(param) : param); 

                 else  

                    for (var i in param)  

                    var k = key == null ? i : key + (param instanceof Array ? '[' + i + ']' : '.' + i); 

                    paramStr += parseParam(param[i], k, encode);

                     

                 

                return paramStr;            

            

调用parseParam(obj)

console.log(parseParam(obj))

如何将 URL 参数添加到 JSON Web 服务调用 - Objective C

【中文标题】如何将 URL 参数添加到 JSON Web 服务调用 - Objective C【英文标题】:How to add URL parameters to JSON web service call - Objective C 【发布时间】:2012-02-23 16:21:44 【问题描述】:

我正在尝试使用 SBJsonParser API 使用此代码从 JSON Web 服务获取信息:

 SBJsonParser *parser = [[SBJsonParser alloc] init];

// Prepare URL request to download statuses from Twitter
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://twitter.com/statuses/public_timeline.json"]];

// Perform request and get JSON back as a NSData object
NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];

// Get JSON as a NSString from NSData response
NSString *json_string = [[NSString alloc] initWithData:response encoding:NSUTF8StringEncoding];

但是我需要在 web 服务 URL 中添加两个参数,用户和密码,以及它们的值,所以 URL 将是“http://twitter.com/statuses/public_timeline.json?user=name&password=test” .我已经搜索了有关 API 的信息来执行此操作,但没有成功。

非常感谢您的帮助。

【问题讨论】:

【参考方案1】:
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"http://twitter.com/statuses/public_timeline.json?user=%@&password=%@", @"name", @"test"]]];

根据需要用您自己的变量替换 @"name"@"test"

【讨论】:

【参考方案2】:

我假设你有变量中的值,对吗?如果是这样,只需使用 NSString 的 stringWithFormat: 方法即可。

替换:

@"http://twitter.com/statuses/public_timeline.json"

与:

[NSString stringWithFormat:@"http://twitter.com/statuses/public_timeline.json?user=%@&password=%@", user, password]

【讨论】:

-1 其他答案正确:例如:[NSString stringWithFormat : @"http:\//twitter.com/statuses/public_timeline.json?user=%@&password=%@", @"user", @"pas=?/word"] 将导致:"http://twitter.com/statuses/public_timeline.json?user=user&password=pas=?/word" 没有正确的 URL 转义在这个解决方案中。【参考方案3】:
NSString *user = @"user";
NSString *password = @"password";

NSString *urlStr = [NSString stringWithFormat:@"http://twitter.com/statuses/public_timeline.json?user=%@&password=%@", user, password];

NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString: urlStr]];

【讨论】:

【参考方案4】:

你也可以这样做。

 NSMutableURLRequest *theRequest = [[NSMutableURLRequest alloc] initWithURL:@"http://twitter.com/statuses/public_timeline.json"];

 [theRequest setHTTPMethod:"@POST"] // Or get, push, put

 NSString theRquest_Body = [NSString stringWithFormat:@"?user=%@&password=%@",
                           [user stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding],
                           [password stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]],

 [theRequest setHTTPBody:[theRequest_body dataUsingEncoding:NSUTF8StringEncoding]];

【讨论】:

以上是关于给url 添加json参数的主要内容,如果未能解决你的问题,请参考以下文章

将 json 添加到 tabledit 选择参数

给当前的URL添加/更新新的参数

vue 给url 中文参数 添加编码解码

如何向 JSON 请求添加一些参数?

怎么给后端返回的json中添加数据

如何在商店中更改/添加参数