Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

จะเข้าถึงฟิลด์ JSON, อาร์เรย์และวัตถุที่ซ้อนกันของ JsonNode ใน Java ได้อย่างไร


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