如何解析未加引号的 JSON 字符串
我有一个JSON字符串,其中键和值都没有引号,我想将其转换为格式正确的JSON。
{basic:{0:{index:0, license:t, nameSID:n, image:"img_left", descriptionSID:t, category:r}}
有没有一个Java库可以处理它?我尝试过杰克逊,但它不起作用。
我有一个JSON字符串,其中键和值都没有引号,我想将其转换为格式正确的JSON。
{basic:{0:{index:0, license:t, nameSID:n, image:"img_left", descriptionSID:t, category:r}}
有没有一个Java库可以处理它?我尝试过杰克逊,但它不起作用。
您可以与 Jackson 一起使用以允许不带引号的字段名称:JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES
JsonFactory factory = new JsonFactory();
factory.configure(JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES, true);
JsonParser jp = factory.createJsonParser(new FileInputStream("content.json"));
不知道你是否开始编写自己的解析器,但我做到了。
https://github.com/ischumacher/rsjp
下面是示例 JSON 的示例用法:
String str = "{basic:{0:{index:0, license:t, nameSID:n, image:\"img_left\", descriptionSID:t, category:r}}";
Map<String, Object> jso = Json.parseJSON(str);
System.out.println(jso);
System.out.println(Json.get(jso, "basic", "0", "image"));
下面是输出:
{
basic:
{
0:
{
index: 0,
license: t,
nameSID: n,
image: img_left,
descriptionSID: t,
category: r
}
}
}
img_left