欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

java json構(gòu)建樹

呂致盈2年前8瀏覽0評論

Java中的JSON構(gòu)建樹是一種將JSON格式數(shù)據(jù)轉(zhuǎn)化為樹形結(jié)構(gòu)的方法。在很多的實際場景中,我們需要對JSON數(shù)據(jù)進行處理,比如對JSON樹形結(jié)構(gòu)進行遍歷、搜索等等。本文將介紹一種常見的JSON構(gòu)建樹的方法。

// java代碼示例
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.core.JsonProcessingException;
public class JsonTreeBuilder {
public static void main(String[] args) throws JsonProcessingException {
String json = "{\"name\":\"john\",\"age\":25,\"address\":{\"city\":\"beijing\",\"country\":\"china\"}}";
ObjectMapper mapper = new ObjectMapper();
JsonNode root = mapper.readTree(json);
buildJsonTree(root, "");
}
public static void buildJsonTree(JsonNode node, String prefix) {
if (node.isObject()) {
System.out.println(prefix + "{");
for (JsonNode child : node) {
System.out.print(prefix + "  " + child.getKey() + ": ");
buildJsonTree(child.getValue(), prefix + "  ");
}
System.out.println(prefix + "}");
} else if (node.isArray()) {
System.out.println(prefix + "[");
for (JsonNode child : node) {
buildJsonTree(child, prefix + "  ");
}
System.out.println(prefix + "]");
} else if (node.isValueNode()) {
System.out.println(node.asText());
}
}
}

以上代碼中,我們使用了Jackson庫的ObjectMapper類和JsonNode類。首先我們將JSON字符串轉(zhuǎn)化為JsonNode對象,然后對JsonNode對象進行遍歷,并使用遞歸的方式進行JSON樹形結(jié)構(gòu)的構(gòu)建。

當JsonNode對象是對象類型時,我們先輸出"{",然后對其所有的子節(jié)點進行遍歷,遞歸調(diào)用buildJsonTree函數(shù),并在輸出的字符串前加上一些前綴,以保證輸出的格式正確。最后再輸出"}"。

當JsonNode對象是數(shù)組類型時,我們先輸出"[",然后對其所有的子節(jié)點進行遍歷,同樣遞歸調(diào)用buildJsonTree函數(shù),并加上前綴。最后再輸出"]"。

當JsonNode對象是值類型時,我們則直接輸出節(jié)點的值文本。