色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

jackson獲取指定路徑的json

林雅南2年前8瀏覽0評論

Jackson是Java開發(fā)中常用的一個JSON解析庫。有時候我們需要獲取一個JSON串中指定路徑的數(shù)據(jù),Jackson提供了很好的支持。

假設(shè)有如下JSON數(shù)據(jù):

{
"name": "Tom",
"age": 18,
"address": {
"province": "Guangdong",
"city": "Shenzhen",
"street": "Nanshan district"
},
"hobbies": ["reading", "swimming", "running"]
}

如果我們想要獲取"address"下面的"city",可以使用下面的代碼:

String jsonStr = "{...}"; // 上面的JSON數(shù)據(jù)
ObjectMapper mapper = new ObjectMapper();
JsonNode jsonNode = mapper.readTree(jsonStr); // 讀取JSON字符串成JsonNode對象
String city = jsonNode.path("address").path("city").asText();
System.out.println(city); // Shenzhen

上面的代碼中,首先將JSON字符串讀取成JsonNode對象,然后通過path()方法依次指定路徑,最后調(diào)用asText()方法獲取指定節(jié)點的文本值。

需要注意的是,如果指定的節(jié)點不存在或者節(jié)點類型不匹配,asText()方法會返回一個空字符串。如果找不到指定的節(jié)點,可以通過使用get()代替path(),會拋出一個NullPointerException異常,例如:

JsonNode cityNode = jsonNode.get("address").get("city");
if (cityNode != null) {
String city = cityNode.asText();
System.out.println(city); // Shenzhen
} else {
System.out.println("Can't find the city node.");
}

上面的代碼中,先通過get()方法獲取節(jié)點,如果找不到會返回null,然后判斷是否為null再進(jìn)行后續(xù)操作。

總之,Jackson提供了非常靈活的方法來獲取指定節(jié)點的數(shù)據(jù),在實際開發(fā)中應(yīng)用廣泛。