繁体   English   中英

解析JSON单值数组成为字符串

[英]Parsing JSON Single Value Array becomes string

我的iOS应用程序中有一个本地.json文件。 看起来像这样:

{
  "books": [
  {
        "title": "Book 1",
        "category": ["z","y","w"]
  },
  {
        "title": "Book 2",
        "category": ["x"]
  }
 ]
}

我这样解析:

NSString *filePath = [[NSBundle mainBundle] pathForResource:@"books" ofType:@"json"];
NSError *error = nil;

NSData *JSONData = [NSData dataWithContentsOfFile:filePath options:NSDataReadingMappedIfSafe error:&errore];

NSDictionary *jsonDic = [NSJSONSerialization JSONObjectWithData:JSONData options:NSJSONReadingMutableContainers error:&error];

当我打印字典时,如果'category'数组仅包含一个条目,则它看起来像一个字符串

{
  books = (
   {
      title = "Book 1";
      category = (z,y,w)
   },
   {
     title = "Book 2";
     category = x
   }
 )
}

由于我需要遍历所有这些对象,因此如何仅保留所有类别项目的数组结构? 即使只有一个条目的人?

谢谢

编辑 :我在不同的Mac不同xcode5上测试,并且正在工作! 我想知道是否与某种设置有关?

当我运行这段代码并查看jsonDic ,我得到的正是人们所期望的:

(lldb) po jsonDic
{
    books =     (
                {
            category =             (
                z,
                y,
                w
            );
            title = "Book 1";
        },
                {
            category =             (
                x
            );
            title = "Book 2";
        }
    );
}

当你打印一个数组像

NSArray *arr = @[@"A",@"B"];
NSLog(@"%@",arr);

输出将像

2013-11-27 14:49:52.497 TestApp[1629:70b] (
    A,
    B
)

因此,通过字典时,NSLog给出的输出是绝对正确的。 因此,您的category键的数组不是字符串(尽管看起来像字符串)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM