我的iOS App中有一个本地.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并且正在运行!我想知道是否与某种设置有关?
答案 0 :(得分:0)
当我运行此代码并查看jsonDic
时,我得到了人们的期望:
(lldb) po jsonDic
{
books = (
{
category = (
z,
y,
w
);
title = "Book 1";
},
{
category = (
x
);
title = "Book 2";
}
);
}
答案 1 :(得分:0)
当您打印像
这样的数组时NSArray *arr = @[@"A",@"B"];
NSLog(@"%@",arr);
输出类似
2013-11-27 14:49:52.497 TestApp[1629:70b] (
A,
B
)
因此,当您传递字典时,NSLog给出的输出绝对正确。因此,您的category
键的数组不是字符串(尽管它看起来像一个字符串)