gpt4 book ai didi

java - 在 Java 中提取 JSON 键名

转载 作者:太空宇宙 更新时间:2023-11-04 06:16:53 27 4
gpt4 key购买 nike

我想通过保留层次结构(父子关系)来提取JSON结构(仅keyNames结构);我还不需要 JSON 中的值。我是 Java 新手,一直想使用 Jackson 来实现这一目标,但没有成功。

对此的任何指示将不胜感激。

最佳答案

我使用 JSONObject ( http://www.json.org/javadoc/org/json/JSONObject.html ) 为您创建了一个静态内部类

public static class KeyNode {
private String name;
private ArrayList<KeyNode> children;

public KeyNode(String name) {
this.name = name;
this.children = new ArrayList<KeyNode>();
}

public void addChild(KeyNode child) {
this.children.add(child);
}

public static void parseJsonToKeys(KeyNode node, JSONObject json) throws JSONException {
Iterator<?> keys = json.keys();
while (keys.hasNext()) {
String name = (String) keys.next();
KeyNode child = new KeyNode(name);
node.addChild(child);
if (json.optJSONObject(name) != null) {
parseJsonToKeys(child, json.getJSONObject(name));
} else if (json.optJSONArray(name) != null) {
JSONArray array = json.getJSONArray(name);
for (int i = 0; i < array.length(); i++) {
try {
array.getJSONObject(i);
parseJsonToKeys(child, json.getJSONObject(name));
} catch (JSONException e) {
// this is ok
}
}
}
}
}

public static void exampleCodeUsage() {
try {
JSONObject json = new JSONObject("your json");
KeyNode keyHierarchy = new KeyNode("root");
parseJsonToKeys(keyHierarchy, json);
} catch (JSONException e) {
// your json is not formatted correctly
}
}
}

关于java - 在 Java 中提取 JSON 键名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27993726/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com