我有一个格式错误的 JSON 字符串需要解析。 JSON 字符串的键不包含在双引号中,字符串值包含在单引号而不是双引号中。
例子:
{ items: [
{ id: 1, name: 'test1' },
{ id: 2, name: 'test2' }
] }
解析此 JSON 字符串的更好方法是什么?
1) 编写自定义解析器(如何?)
2) 尝试通过执行几个 string_replace 来修复 JSON 字符串
需要注意的一点是,JSON 字符串很长(大约 50kb)并且包含很多条目。
最佳答案
Yaml 是(几乎)JSon 的 super 集,并且更加宽容。它更接近您的默认设置。
String s = "{ items: [\n" +
" { id: 1, name: 'test1' }, \n" +
" { id: 2, name: 'test2' }\n" +
"] }";
Map map = (Map) new Yaml().load(s);
System.out.println(map);
打印
{items=[{id=1, name=test1}, {id=2, name=test2}]}
顺便说一句,这就是它默认转储到 Yaml 的方式。
System.out.println(new Yaml().dump(map));
打印
items:
- {id: 1, name: test1}
- {id: 2, name: test2}
我用了snakeyaml .您还可以将数据绑定(bind)到类
关于java - 在 Java 中解析格式错误的 json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23520979/