1

NSJSONSerialization JSONObjectWithData:options:error:在 iOS 5 项目中使用读取 JSON 字符串并将其转换为 Foundation 对象。有没有一种简单的方法可以确定对象或其某些子对象是数组、字典、数字还是字符串?

4

3 回答 3

3

可以通过该方法检查返回的对象是否是某个类-isKindOfClass:。例如,要检查它是否是一个数组:

id jsonObj = [NSJSONSerialization JSONObjectWithData:...]
if ([jsonObj isKindOfClass:[NSArray class]] {
    // Do array stuff...
}

其他基础类型也是如此。

于 2012-05-02T01:58:43.073 回答
1

所有对象都可以回答它们的类。更有用的是,您可以询问某物是否是某个类或其任何子类的成员:

id jsonParse;

if ([jsonParse isKindOfClass:[NSArray self]]) {
    for (id element in (NSArray *)jsonParse) {

        // and so on
    }
}
于 2012-05-02T01:59:30.997 回答
1

请谨慎使用NSJSONSerialization,因为它仅支持 iOS 5.0+ 和 Mac OS X 10.7+。

我认为您也可以尝试使用第三方库,例如:

两者都易于使用且灵活。

于 2012-05-02T01:39:56.803 回答