【发布时间】:2014-05-07 14:42:47
【问题描述】:
我有一个格式错误的 JSON 字符串需要解析。 JSON 字符串的键没有用双引号括起来,字符串值用单引号而不是双引号括起来。
例子:
{ items: [
{ id: 1, name: 'test1' },
{ id: 2, name: 'test2' }
] }
解析这个 JSON 字符串的更好方法是什么?
1) 编写自定义解析器(如何?)
2) 尝试通过执行几个 string_replace 来修复 JSON 字符串
需要注意的是,JSON 字符串很长(大约 50kb)并且包含很多条目。
【问题讨论】:
-
用锤子打鸡蛋,我可能会使用 javascript 引擎,因为这在 javascript 中是有效的,来为我做评估(可能是犀牛)。
-
@njzk2 我知道它在 JavaScript 中是有效的(它是为它设计的)。但我需要用Java解析它。有没有一个解析器可以很好地解析这个?
-
我假设您没有切换到 XML 的选项。
-
@crownjewel82 不,我不知道。 JSON 按原样提供。
-
@mushroom:是的,因此建议使用 javascript 引擎,例如 rhino,它将评估它为 javascript 并返回一个 java 对象。但是如果你觉得 antlr 已经太重了……