我有一个格式错误的JSON字符串需要解析.JSON字符串的键不包含在双引号中,字符串值用单引号而不是双引号括起来.
例:
{ items: [
{ id: 1, name: 'test1' },
{ id: 2, name: 'test2' }
] }
Run Code Online (Sandbox Code Playgroud)
解析这个JSON字符串的更好方法是什么?
1)编写自定义解析器(如何?)
2)尝试通过执行一些string_replace来修复JSON字符串
有一点需要注意,JSON字符串很长(大约50kb)并且包含很多条目.
Yaml是一个超级(几乎)的JSon并且更加宽容.它更接近你默认拥有的东西.
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);
Run Code Online (Sandbox Code Playgroud)
版画
{items=[{id=1, name=test1}, {id=2, name=test2}]}
Run Code Online (Sandbox Code Playgroud)
BTW这是默认情况下转储到Yaml的方式.
System.out.println(new Yaml().dump(map));
Run Code Online (Sandbox Code Playgroud)
版画
items:
- {id: 1, name: test1}
- {id: 2, name: test2}
Run Code Online (Sandbox Code Playgroud)
我用了蛇形药.您还可以将数据绑定到类(es)