A JsonNode คือ โมเดลต้นไม้ของแจ็คสัน สำหรับ JSON และสามารถอ่าน JSON เป็นอินสแตนซ์ JsonNode และเขียน JsonNode ไปยัง JSON ได้ หากต้องการอ่าน JSON เป็น JsonNode กับ Jackson โดยสร้าง ObjectMapper อินสแตนซ์และเรียก readValue() กระบวนการ. เราสามารถเข้าถึง ฟิลด์ อาร์เรย์ หรือ วัตถุซ้อน โดยใช้ get() วิธีการของ JsonNode ระดับ. เราสามารถส่งคืนการแสดงสตริงที่ถูกต้องโดยใช้ asText() วิธีการและแปลงค่าของโหนดเป็น Java int โดยใช้ asInt() วิธีการของ JsonNode ชั้นเรียน
ในตัวอย่างด้านล่าง เราสามารถเข้าถึงฟิลด์ JSON อาร์เรย์ และอ็อบเจ็กต์ที่ซ้อนกันของ JsonNode
ตัวอย่าง
import com.fasterxml.jackson.databind.*; import java.io.*; public class ParseJSONNodeTest { public static void main(String args[]) { String jsonStr = "{ \"name\" : \"Raja\", \"age\" : 30," + " \"technologies\" : [\"Java\", \"Scala\", \"Python\"]," + " \"nestedObject\" : { \"field\" : \"value\" } }"; ObjectMapper objectMapper = new ObjectMapper(); try { JsonNode node = objectMapper.readValue(jsonStr, JsonNode.class); JsonNode nameNode = node.get("name"); String name = nameNode.asText(); System.out.println(name); JsonNode ageNode = node.get("age"); int age = ageNode.asInt(); System.out.println(age); JsonNode array = node.get("technologies"); JsonNode jsonNode = array.get(1); String techStr = jsonNode.asText(); System.out.println(techStr); JsonNode child = node.get("nestedObject"); JsonNode childField = child.get("field"); String field = childField.asText(); System.out.println(field); } catch (IOException e) { e.printStackTrace(); } } }
ผลลัพธ์
Raja 30 Scala value