我有一个巨大的JSON数据,它包含字典数组,并且每个字典包含大量的键值数据。什么是解析JSON字典阵列的最佳方法
我必须解析每个字典到模型(NSObject模型)。
什么是最好的和最好的方法来做到这一点?现在我正在使用SBJSON框架转换JSON并迭代数组,然后将每个键值存储在字典中,以便NSObject模型。
在此先感谢。
我有一个巨大的JSON数据,它包含字典数组,并且每个字典包含大量的键值数据。什么是解析JSON字典阵列的最佳方法
我必须解析每个字典到模型(NSObject模型)。
什么是最好的和最好的方法来做到这一点?现在我正在使用SBJSON框架转换JSON并迭代数组,然后将每个键值存储在字典中,以便NSObject模型。
在此先感谢。
一个非正式协议,NSKeyValueCoding
,可能是你想要的。它包含一个setValuesForKeysWithDictionary:
方法,它可以让您将字典转换为您所选择的Objective-C对象。假设键名称与属性名称匹配,即。
将这个与for
循环结合在一起,您就可以非常快速地从JSON创建本地ObjC对象。
例子:
String predicateString = [NSString stringWithFormat:@"%@ == '%@'", key, value];
NSPredicate *predicate = [NSPredicate predicateWithFormat:predicateString];
NSArray *filteredResults = [allResultsArray filteredArrayUsingPredicate:predicate];
当使用动态密钥,您应该使用%K
令牌,而不是%@
例子:
NSString predicateString = [NSString stringWithFormat:@"%K == %@", key, value];
This article描述谓词字符串的语法和谓词分析器的某些方面。
您能否告诉我为什么键值方法比其他方法更快。 – 2013-03-23 11:00:34
它的编写速度更快,因为代码会少得多。我不确定使用KVC(而不是foo.key = dictionary [@“key”];)的性能影响,但是,它从来都不是我关心的问题 - 每当我用仪器分析我的代码时,有更大的鱼要修复。 – zadr 2013-03-23 18:14:06