【发布时间】:2013-11-25 18:14:08
【问题描述】:
我有一个长 json 数组,需要发送到 html5 移动应用程序并进行解析。整个数组大约有 700kb(压缩到 150kb),目前有 554976 个字符。但它会随着时间的推移而增加。
使用 jquery 解析 json,我的应用程序在尝试解析它时崩溃。 jsonlint、json parser.fr 和我尝试的任何其他在线 json 验证器也是如此,所以我猜eval() 也不是一个选项。
可能是一个广泛的问题,但 json 数组的最大“可接受”长度是多少?
我已经从数组中删除了尽可能多的数据,我能想到的唯一选择是将数组拆分为 3-4 个服务器调用并在应用程序中单独解析它。还有其他选择吗?
编辑
感谢@fabien 指出如果 jsonlint 崩溃,则 json 存在问题。其中一个节点中有一个隐藏的“空格”字符。它在服务器上被正确解析,但在客户端上却没有。
【问题讨论】:
-
您的意思是“崩溃”还是更像“冻结”?
-
关于堆栈溢出的related 查询。接受的答案还包含开发人员解析大型 JSON 字符串所遵循的分析和方法。希望这可以为您指明解决方案
-
eval无疑会比$.parseJSON更快,内存效率更高。也看看JSON.parse(不完全跨浏览器) -
stackoverflow.com/questions/9912642/… 有一个 20mb 的 JSON 字符串正在被解析。您确定您的 JSON 对象格式正确吗?
-
@Petah 来自 jQuery 2 源
parseJSON: JSON.parse,。 jQuery 1.x 将它用于所有支持它的浏览器。
标签: javascript jquery arrays json