无法使用json解析器解析响应字符串

时间:2014-02-21 09:18:04

标签: objective-c json nsjsonserialization

我在我的应用程序中使用PHP服务我从服务器获取响应我试图解析响应字符串但JSON Parser返回NULL值。我无法解析此响应字符串。我对这个问题很感兴趣,但没有人给出确切的解决方案。我正在使用SBJson解析器和NSJSONSeralization,但它返回null值。我在下面发布我的回复字符串请帮助我任何一个。 响应字符串是

([["{\"category_id\":\"1\", \"category_name\":\"BEVERAGES\", \"image_id\":\"6\"}"]])

3 个答案:

答案 0 :(得分:1)

确保按照以下代码解析json:

NSString * jsonString = @"{\"category_id\":\"1\", \"category_name\":\"BEVERAGES\", \"image_id\":\"6\"}";
NSData * jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
id jsonContainer = [NSJSONSerialization JSONObjectWithData:jsonData
                                                   options:NSJSONReadingMutableContainers
                                                     error:nil];

答案 1 :(得分:0)

此回复

([["{\"category_id\":\"1\", \"category_name\":\"BEVERAGES\", \"image_id\":\"6\"}"]])

不适合JSON。它发生了,服务器“想要”发送JSON但是没有正确;) - 或者你无法正确打印出JSON。

JSON应该看起来像:

[[{"category_id":"1","category_name":"BEVERAGES","image_id":"6"}]]

[[{"category_id":1,"category_name":"BEVERAGES","image_id":6}]]

注意:键/值对可能会被重新排序。

此外,请确保指定正确的Accept标头值,例如您的请求中的“application / json”(警告:编辑前不正确)。

并且,在尝试使用JSON解析器解析响应之前,请检查响应的状态代码(应为200 (OK))和 MIME类型。如果您期望JSON,您应该获得一个Content-Type标头(另请参见NSURLResponse的属性MIMEType),其值应为application/json

答案 2 :(得分:-1)

最好的解决方法是在服务器端修复它并正确编码。

如果无法做到这一点,请使用[jsonString stringByReplacingOccurrencesOfString:@"\" withString:@""];