Computer >> Máy Tính >  >> Lập trình >> Java

Làm cách nào để nhận các giá trị của một khóa bằng giao diện JsonPointer trong Java?


JSONPointer là tiêu chuẩn xác định cú pháp chuỗi có thể được sử dụng để truy cập một giá trị khóa cụ thể trong tài liệu JSON. Một bản sao của JSONPointer có thể được tạo bằng cách gọi phương thức nhà máy tĩnh createPointer () trên Json lớp. Trong JSONPointer, mọi cú pháp chuỗi đều có tiền tố là “/” . Chúng tôi có thể nhận giá trị của khóa bằng cách gọi getValue () trên JsonPointer đối tượng.

Tệp JSON

Làm cách nào để nhận các giá trị của một khóa bằng giao diện JsonPointer trong Java?

Ví dụ

import javax.json.*;
import java.io.*;
public class JsonPointerTest {
   public static void main(String[] args) throws Exception {
      JsonReader jsonReader = Json.createReader(new FileReader("simple.json"));
      JsonStructure jsonStructure = jsonReader.read();
      JsonPointer jsonPointer1 = Json.createPointer("/firstName");
      JsonString jsonString = (JsonString)jsonPointer1.getValue(jsonStructure);
      System.out.println("First Name: " + jsonString.getString()); // prints first name
      JsonPointer jsonPointer2 = Json.createPointer("/phoneNumbers");
      JsonArray array = (JsonArray)jsonPointer2.getValue(jsonStructure);
      System.out.println("Phone Numbers:");
      for(JsonValue value : array) {
         JsonObject objValue = (JsonObject)value;
         System.out.println(objValue.toString()); // prints phone numbers
      }
      JsonPointer jsonPointer3 = Json.createPointer("/phoneNumbers/1");
      JsonObject jsonObject1 = (JsonObject)jsonPointer3.getValue(jsonStructure);
      System.out.println("Home: " + jsonObject1.toString()); // prints home phone number
      JsonPointer jsonPointer4 = Json.createPointer("");
      JsonObject jsonObject2 = (JsonObject)jsonPointer4.getValue(jsonStructure);
      System.out.println("JSON:\n" + jsonObject2.toString()); // prints JSON structure
      jsonReader.close();
   }
}

Đầu ra

First Name: Raja
Phone Numbers:
{"Mobile":"9959984000"}
{"Home":"0403758000"}
Home: {"Home":"0403758000"}
JSON:
{"firstName":"Raja","lastName":"Ramesh","age":30,"streetAddress":"Madhapur","city":"Hyderabad","state":"Telangana","phoneNumbers":[{"Mobile":"9959984000"},{"Home":"0403758000"}]}