NSJSON序列化问题。发送到 api 的 JSON 对象不正确
Posted
技术标签:
【中文标题】NSJSON序列化问题。发送到 api 的 JSON 对象不正确【英文标题】:NSJSONSerialization issues. Incorrect JSON object sent to api 【发布时间】:2014-11-05 11:19:43 【问题描述】:在我的 xcode 项目中,我使用 Unirest 库向我的 api 发送带有 json 数据的发布请求:
NSDictionary *jsonObj = @@"access_token": accessToken;
UNIHTTPJsonResponse* response = [[UNIRest postEntity:^(UNIBodyRequest* request)
[request setUrl:@"http://localhost:9000/auth/facebook/token"];
[request setHeaders:headers];
// Converting NSDictionary to JSON:
[request setBody:[NSJSONSerialization dataWithJSONObject:jsonObj options:0 error:nil]];
] asJson];
检查时,jsonObj 的格式正确。
但是在服务器端我看到了这个对象:
'"access_token":"12345678910"': ''
什么时候应该:
"access_token":"12345678910"
这里发生了什么?
【问题讨论】:
显然,您正在发送一个 JSON 字符串作为 JSON“对象”中的键。我不熟悉 UNIRest,但我怀疑它正在进行第二次 JSON 序列化。 【参考方案1】:我怀疑这与 UNIHTTPJsonResponse
上的 asJson
方法有关。
我的猜测是它正在获取正文等的内容......然后将其“转换”为 JSON。
所以,当这已经是 JSON 时,它会再次结束。
【讨论】:
我在没有库的情况下尝试了发布请求,但同样的事情发生了。以上是关于NSJSON序列化问题。发送到 api 的 JSON 对象不正确的主要内容,如果未能解决你的问题,请参考以下文章