Java中json文档中叶节点的所有路径的输出列表

Java中json文档中叶节点的所有路径的输出列表,第1张

Java中json文档中叶节点的所有路径的输出列表

事实证明,使用Gson做到这一点非常容易,尤其是使用2.3中引入的JsonReader.getPath()方法时。

static void parseJson(String json) throws IOException {    JsonReader reader = new JsonReader(new StringReader(json));    reader.setLenient(true);    while (true) {        JsonToken token = reader.peek();        switch (token) { case BEGIN_ARRAY:     reader.beginArray();     break; case END_ARRAY:     reader.endArray();     break; case BEGIN_OBJECT:     reader.beginObject();     break; case END_OBJECT:     reader.endObject();     break; case NAME:     reader.nextName();     break; case STRING:     String s = reader.nextString();     print(reader.getPath(), quote(s));     break; case NUMBER:     String n = reader.nextString();     print(reader.getPath(), n);     break; case BOOLEAN:     boolean b = reader.nextBoolean();     print(reader.getPath(), b);     break; case NULL:     reader.nextNull();     break; case END_document:     return;        }    }}static private void print(String path, Object value) {    path = path.substring(2);    path = PATTERN.matcher(path).replaceAll("");    System.out.println(path + ": " + value);}static private String quote(String s) {    return new StringBuilder() .append('"') .append(s) .append('"') .toString();}static final String REGEX = "\[[0-9]+\]";static final Pattern PATTERN = Pattern.compile(REGEX);


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5093709.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-16
下一篇 2022-11-16

发表评论

登录后才能评论

评论列表(0条)

保存