将json编码的字符串转换为数组

时间:2014-01-29 14:00:08

标签: objective-c

我进行API调用,并收到一个JSON字符串响应,看起来像

{content = 
{key_1 = {"field_1" = "value_1"; "field_2" = "value_2"}, 
key_2 = {"field_1" = "value_3"; "field_2" = "value_4"}
}

我想将它转换为数组(这实际上是一个公司列表),我可以使用类似于PHP中的“foreach”来获取索引和某些特定字段。

您是否知道如何将其投射到阵列?

(例如,在pho中我将使用$ array =(array)$ object;)

感谢您的帮助!

弗雷德里克

3 个答案:

答案 0 :(得分:0)

您的JSON对象非常不清楚。我假设key_1和key_2是公司,而你正试图制作一系列词典。

您将获得您的响应JSON对象并将其存储到NSDictionary *响应中;

            NSDictionary *response = JSONObject;

            //Get the dictionary pertaining to "content"
            NSDictionary *content = response[@"content"];

            //Create the array you'll add companies to.
            NSMutableArray *array = [NSMutableArray array];

            //Go through and add each element (key_1 & key_2) to the array
            for (NSDictionary *companyDict in content) {
                [array addObject:companyDict];
            }

答案 1 :(得分:0)

发布的示例不是JSON。

请注意,JSON中没有“=”。整体形式确实类似于字典词典,而不是数组。

有关JSON语法的详细信息,请参阅Introducing JSON

答案 2 :(得分:0)

您可以使用NSJSONSerialization

NSJSONSerialization类可用于将JSON转换为Foundation对象,反之亦然。您应该使用-JSONObjectWithData:options:error:类的NSJSONSerialization

示例:

NSError *err;
NSDictionary *jsonDisctionary = [NSJSONSerialization JSONObjectWithData:responseData options:kNilOptions error:&err];
NSArray *fetchedArr = [jsonDisctionary objectForKey:@"content"];