在Java中解析格式错误的json

mus*_*oom 2 java parsing json

我有一个格式错误的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)并且包含很多条目.

Pet*_*rey 6

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)