【问题标题】:How to parse nested JSON arrays in Objective C如何在 Objective C 中解析嵌套的 JSON 数组
【发布时间】:2012-05-15 13:46:22
【问题描述】:

我有this JSON 树,我需要按类别键对数组进行分组。 (在这个例子中,“”、“1”、“2”、“3”和“serf”是类别的值名称。)我正在使用 NSJSONSerialization 序列化 JSON,但无法按照我想要的方式解析它。这是我的一些代码:

NSData *data2=[NSData dataWithContentsOfURL:url2];
result2=[NSJSONSerialization JSONObjectWithData: data2
                                        options: NSJSONReadingMutableContainers
                                          error: nil];
NSLog(@"button data: %@", result2);
for (NSDictionary *strh in [result2 objectForKey:@"template"]) {
    //the json struct above is called result2 here
    //now i need to parse any category with their names..           
}  

相关:Here 是关于如何在 PHP 中创建具有键值匹配的多维数组的问题。

【问题讨论】:

  • 实际问题是什么? “但无法按照我想要的方式解析它”——你想要的结果是什么,你得到的结果是什么?
  • @Felixyz 我想要的结果是通过名称访问对象。例如能够从类别中读取按钮数据
  • 不看result2的结构,很难帮你。你说的这些类别是什么?
  • Here 是。我已经分享了问题开头的链接
  • 请看这个:pastebin.com/q3WuveXD

标签: php objective-c arrays json parsing


【解决方案1】:

查看输出,您有一个字典,其中包含一个名为 template 的键和一个名为 version 的键。键 template 的对象本身就是一个包含类别键的字典。以下代码:

id foo = [[result2 objectForKey: @"template"] objectForKey: @""];

foo 设置为一个数组,其中包含 id 为 52、19、2、22 的项目。

类别 1、2、3 更棘手,因为键是数字还是字符串并不明显。它们可能是字符串,因为 JSON 中的键必须是字符串,所以

id bar = [[result2 objectForKey: @"template"] objectForKey: @"1"];

bar 设置为一个数组,其中包含 id 为 28、1、25 的项目。

【讨论】:

  • 我对命名有点困惑(我自己写的是 PHP 端),但我可以改变。我尝试了这样的事情,但没有得到任何结果。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多