小编典典

如何使用NSJSONSerialization

json

我有一个JSON字符串(来自PHP json_encode(),看起来像这样:

[{"id": "1", "name":"Aaa"}, {"id": "2", "name":"Bbb"}]

我想将其解析为iPhone应用程序的某种数据结构。我想对我来说最好的是拥有一个字典数组,因此数组中的第0个元素是带有键"id" => "1"和的字典"name" => "Aaa"

我不明白如何NSJSONSerialization存储数据。到目前为止,这是我的代码:

NSError *e = nil;
NSDictionary *JSON = [NSJSONSerialization 
    JSONObjectWithData: data 
    options: NSJSONReadingMutableContainers 
    error: &e];

这只是我在另一个网站上看到的示例。我一直在尝试JSON通过打印出诸如此类的元素和事物的数量来读取对象,但是我一直在得到EXC_BAD_ACCESS

如何使用NSJSONSerialization上面的JSON解析,并将其转换为我提到的数据结构?


阅读 302

收藏
2020-07-27

共1个答案

小编典典

您的json根对象不是字典而是数组:

[{"id": "1", "name":"Aaa"}, {"id": "2", "name":"Bbb"}]

这可以使您清楚地了解如何处理它:

NSError *e = nil;
NSArray *jsonArray = [NSJSONSerialization JSONObjectWithData: data options: NSJSONReadingMutableContainers error: &e];

if (!jsonArray) {
  NSLog(@"Error parsing JSON: %@", e);
} else {
   for(NSDictionary *item in jsonArray) {
      NSLog(@"Item: %@", item);
   }
}
2020-07-27