我运行此代码示例
NSString *st =@"{ \"Hello\" : [ {\"m\":\"m\"} ] }";
NSDictionary * dic = [NSJSONSerialization JSONObjectWithData:[st dataUsingEncoding:NSUTF8StringEncoding] options:0 error:nil];
我在dic中获得输出:
{
Hello = (
{
m = m;
}
);
}
将方括号“[”替换为“(”,,为什么??
答案 0 :(得分:1)
JSON对数组使用方括号[ ... ]
,请参阅http://json.org。
description
的{{1}}方法使用括号NSArray
来打印数组。
该格式在Old-Style ASCII Property Lists中描述。
您不能指望输出相等。另一个例子,JSON中的字符串总是用引号括起来:( ... )
和“旧式ASCII属性列表”格式
省略没有空格的纯字母数字字符串的引号。
答案 1 :(得分:1)
这实际上没有改变任何东西,这只是格式化的问题。在Cocoa和ObjC中习惯用()
表示数组,而不是javascript中使用的[]
。例如,尝试:
NSArray *array = [NSArray arrayWithObjects:@"one", @"two", @"three", nil];
NSLog(@"%@", array);
你会看到:
2014-02-02 10:47:41.468 Untitled[2773:507] (
one,
two,
three
)
NSArray
只是用parens来形容自己。