相关疑难解决方法(0)

Objective-C的JSON解析器比较(JSON框架,YAJL,TouchJSON等)

据我所知,Objective-C,JSON Framework,YAJLTouch JSON有三个JSON解析器.然后,这三个将有自己的特点.

例如:
YAJL可以用作SAX样式解析器.
JSON Framework具有相对较长的历史并被广泛使用.
Touch JSON解析NSData而不是NSString.

另外,据我测试,性能比较的结果如下:
[fast] YAJL> JSON Framework> Touch JSON [slow].

如果您了解这些JSON解析器的优缺点,您能告诉我吗?
最后,如果你知道任何其他JSON Parser,请告诉我.

iphone json objective-c

141
推荐指数
3
解决办法
4万
查看次数

将10 MB JSON响应转换为NSDictionary的最有效方法是什么?

我们的应用程序必须使用最少的远程http请求显示大量数据,因此我们在后端添加了一个端点,它将所有必要的数据作为单个json响应提供.这导致~1.5MB(压缩)或大约8 MB的未压缩的json格式文本.

没有太大问题,它会在10到30秒内下载,我们正在使用ASIHTTPRequest将整个响应写入磁盘.

现在是有趣的部分 - 在将未压缩文件读入内存映射字符串后,我们使用stig的json-framework将其转换为NSDictionary.这对我们的应用程序的其余部分以及其他API端点的典型2 KB json响应非常有效.但是,将这8 MB数据反序列化需要几秒钟(模拟器)到几分钟(3G和第二代iPod Touch).

我正在研究读取所有这些数据的最佳方法.

我很乐意使用直接从后端提供的二进制plist,但是我们使用Java并且我没有找到符合我们要求的合适库,并且在如此紧迫的期限内,编写我们自己可能不是最好的主意.

如果它以任何方式有帮助,我们正在解析的json字符串主要是X项的数组,如下所示:

{
    "items": [ { "key1": "value1", "key2": "value2" },
               { "key1": "value1", "key2": "value2" },
               { "key1": "value1", "key2": "value2" },
               { "key1": "value1", "key2": "value2" },
               { "key1": "value1", "key2": "value2" },
               { "key1": "value1", "key2": "value2" }
             ]
}
Run Code Online (Sandbox Code Playgroud)

将这个8 MB json格式的字符串读入内存中的NSDictionary的最有效方法是什么?

iphone json objective-c cocoa-design-patterns

6
推荐指数
1
解决办法
2376
查看次数

标签 统计

iphone ×2

json ×2

objective-c ×2

cocoa-design-patterns ×1