ios - 如何使用 NSJSONSerialization

我有一个 JSON 字符串(来自 PHP 的 json_encode(),如下所示:

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

我想将其解析为我的 iPhone 应用程序的某种数据结构。我想对我来说最好的事情是有一个字典数组,所以数组中的第 0 个元素是一个字典,键为 "id"=> "1""name"=> “啊”

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

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

这只是我在另一个网站上看到的一个例子。我一直试图通过打印出元素的数量和类似的东西来读取 JSON 对象,但我总是得到 EXC_BAD_ACCESS

如何使用NSJSONSerialization来解析上面的JSON,并把它变成我提到的数据结构?

最佳答案

您的根 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);
   }
}

https://stackoverflow.com/questions/8356842/

相关文章:

python - Python 中的元类是什么?

jquery - TypeError : $. ajax(...) 不是函数?

python - 如何将网页中的 JSON 转换为 Python 脚本

php - json_encode() 转义正斜杠

python - 如何在 Python 中检查字符串是否是有效的 JSON?

ios - 如何将 JSON 字符串反序列化为 NSDictionary? (适用于 iOS 5+)

python - 如果 __name__ == "__main__": do? 会怎样

python - 存储 Python 字典

python - Python有三元条件运算符吗?

javascript - 将对象字符串转换为 JSON