在Objective-C中解析JSON的首选数据类型是什么?

时间:2012-02-24 23:02:24

标签: objective-c ios ios5

在Objective-C中解析JSON的首选数据类型是什么?我正在寻找一种能够反映使用key=>value样式和数组形式的数据类型。

2 个答案:

答案 0 :(得分:4)

通常,库(例如SBJson)会将解析后的结果作为NSArrayNSDictionary返回,这取决于解析的JSON元素是对象还是数组。

来自SBJsonParser.h

/**
 @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:来弄清楚你实际得到了什么。