在Objective-C中解析JSON的首选数据类型是什么?我正在寻找一种能够反映使用key=>value
样式和数组形式的数据类型。
答案 0 :(得分:4)
通常,库(例如SBJson)会将解析后的结果作为NSArray
或NSDictionary
返回,这取决于解析的JSON元素是对象还是数组。
/**
@brief Return the object represented by the given string
This method converts its input to an NSData object containing UTF8 and calls -objectWithData: with it.
@return The NSArray or NSDictionary represented by the object, or nil if an error occured.
*/
- (id)objectWithString:(NSString *)repr;
在你的问题中,你问“我正在寻找一种能够反映使用key => value”的数据类型,根据定义,这正是字典的含义......所以,你可能正在寻找NSDictionary
。
答案 1 :(得分:2)
这个问题没有任何意义。 JSON字符串本身决定了在反序列化时将获得的对象类型。它可以是字符串,数字,数组或字典。你必须准备接受任何这些。如果您使用NSJSONSerialization,您会注意到解码方法返回id,这意味着您不会提前知道类型。你将不得不使用isKindOfClass:来弄清楚你实际得到了什么。