2013-03-22 86 views
0

我有一个巨大的JSON数据,它包含字典数组,并且每个字典包含大量的键值数据。什么是解析JSON字典阵列的最佳方法

我必须解析每个字典到模型(NSObject模型)。

什么是最好的和最好的方法来做到这一点?现在我正在使用SBJSON框架转换JSON并迭代数组,然后将每个键值存储在字典中,以便NSObject模型。

在此先感谢。

回答

0

一个非正式协议,NSKeyValueCoding,可能是你想要的。它包含一个setValuesForKeysWithDictionary:方法,它可以让您将字典转换为您所选择的Objective-C对象。假设键名称与属性名称匹配,即。

将这个与for循环结合在一起,您就可以非常快速地从JSON创建本地ObjC对象。

+0

您能否告诉我为什么键值方法比其他方法更快。 – 2013-03-23 11:00:34

+0

它的编写速度更快,因为代码会少得多。我不确定使用KVC(而不是foo.key = dictionary [@“key”];)的性能影响,但是,它从来都不是我关心的问题 - 每当我用仪器分析我的代码时,有更大的鱼要修复。 – zadr 2013-03-23 18:14:06

0

使用NSPredicate

例子:

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描述谓词字符串的语法和谓词分析器的某些方面。

相关问题