【发布时间】:2021-06-29 01:07:53
【问题描述】:
我正在寻找一种处理 JSON 的方法,其中包括 JS cmets。我知道,cmets 对于 JSON 是不合法的,但不幸的是,我需要使用 cmets 读取/写入 JSON 文件。
我找到了一种使用 Jackson 编写 cmets 的方法。本代码
JsonGenerator gen = factory.createGenerator(System.out);
gen.writeStartObject();
gen.writeStringField("a", "b");
gen.writeRaw("\n/*------------*/\n");
gen.writeStringField("c", "d");
gen.writeEndObject();
gen.close();
生成以下 JSON:
{"a":"b"
/*------------*/
,"c":"d"}
如果我开始解析这个 JSON
factory.enable(JsonParser.Feature.ALLOW_COMMENTS);
JsonParser parser = factory.createParser("{\"a\":\"b\"/*------------*/,\"c\":\"d\"}");
while (parser.nextToken() != JsonToken.END_OBJECT) {
System.out.println(parser.currentToken() + ":" + parser.getText());
}
cmets 和所有格式都被跳过。甚至没有像“RAW”或“COMMENT”这样的 JsonToken。
有没有办法使用 Jackson(或其他 Java 库)解析嵌入原始数据的 JSON?
【问题讨论】:
-
您的 JSON 是否未被解析,或者您希望从 json 中提取 cmets?
-
我需要操纵 JSON 保持提交不变。
-
@30thh 应该是纯Java库?还是介绍java以外的东西的房间?
-
@Nagaraj 欢迎一切有效的东西 :-)
标签: java json parsing jackson comments