从json字符串获取媒体网址

时间:2011-02-19 15:31:27

标签: iphone json nsarray nsdictionary

如何从这个json中获取图像路径+名称?

    /*
     {
     distance = 0;
     "effective_from" = "2011-02-19 12:27:20";
     "effective_thru" = "2011-02-19 13:27:20";
     fname = eric;
     latitude = "11.92179";
     "listing_id" = 60;
     lname = cartman;
     longitude = "-74.70189";
     lstatus = active;
     media = "{\"media\":
     [
     {\"id\":149,\"media_url\":\"mediauploads/149.jpg\"},
     {\"id\":150,\"media_url\":\"mediauploads/150.jpg\"},
     {\"id\":151,\"media_url\":\"mediauploads/151.jpg\"},
     {\"id\":152,\"media_url\":\"mediauploads/152.jpg\"}
     ]}";
     tags = "Separate multiple tags with commas";
     text = "Listing text";
     title = "Please provide a descriptive title";
     username = eric;
     "users_id" = 13;
     },
     */

我的问题是NSDictionary * media = [userContent objectForKey:@“media”];返回 - [NSCFString objectForKey:]:无法识别的选择器发送到实例0x66662a0所以我无法从中获取数组。

更新:所以事实证明我从服务器获取了一个字符串。如何将其解析为字典?

感谢任何帮助。

谢谢!

1 个答案:

答案 0 :(得分:0)

TouchJSON提供了一个JSON反序列化器类,其中包含将JSON转换为字典的方法。

如果将JSON作为字符串返回,首先将其转换为NSData。例如:

NSData *jsonData = [jsonString dataUsingEncoding:NSUTF32BigEndianStringEncoding];

然后创建一个CJSONDeserializer并传递数据以返回字典:

CJSONDeserializer *deserializer = [CJSONDeserializer deserializer];
error = nil;
NSDictionary *dict = [deserializer deserializeAsDictionary:jsonData error:&error];

然后,您应该能够从字典中提取所需的数据。