解析JSON数据的问题

时间:2013-05-15 06:06:06

标签: objective-c json nsjsonserialization

我正在尝试将字符串转换为json对象,并且不确定为什么这不起作用。当我输出nslog时,我被告知urldata对于json序列化无效,但是当查看字符串时,它看起来像有效的json。我也尝试将其编码为utf8,但它仍然不会序列化。我在这里错过了什么吗? - 注意帖子中省略了不必要的代码。

获取请求

urlData = [NSURLConnection sendSynchronousRequest:urlRequest
                                returningResponse:&response
                                            error:&error];

NSDictionary *tempDict = [NSDictionary alloc];

解析

if ([NSJSONSerialization isValidJSONObject:urlData] ) {
    NSLog(@"is valid");
    tempDict = [NSJSONSerialization JSONObjectWithData:urlData kniloptions error:&error];
}

NSLog(@"is not valid");

定义: isValidJSONObject: 返回一个布尔值,指示是否可以将给定对象转换为JSON数据。

1 个答案:

答案 0 :(得分:4)

正如您在问题中已经提到的那样,isValidJSONObject

  

返回一个布尔值,指示给定对象是否可以   将转换为 JSON数据

在您的情况下,您不想创建JSON数据,而是使用JSON数据创建字典。 :

tempDict = [NSJSONSerialization JSONObjectWithData:urlData
                                           options:NSJSONReadingMutableContainers
                                             error:&error];

if (!tempDict) {
  NSLog(@"Error parsing JSON: %@", error);
}