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

Làm cách nào chúng ta có thể cập nhật dữ liệu JSON hiện có bằng cách sử dụng API javax.json trong Java?


JsonBuilderFactory giao diện là một nhà máy để tạo JsonObjectBuilder phiên bản và JsonObjectBuilder là trình tạo để tạo JsonObject mô hình từ đầu. Giao diện này khởi chạy JSON trống mô hình đối tượng và cung cấp các phương thức để thêm cặp tên / giá trị vào mô hình đối tượng và trả về đối tượng kết quả. Chúng tôi có thể tạo JsonObjectBuilder phiên bản có thể được sử dụng để xây dựng JsonObject bằng cách sử dụng createObjectBuilder () phương thức.

Cú pháp

JsonObjectBuilder createObjectBuilder()

Trong ví dụ dưới đây, Chúng tôi có thể cập nhật dữ liệu JSON hiện có với dữ liệu mới được thêm vào.

Ví dụ

import java.io.*;
import javax.json.*;
public class UpdateExistingJsonTest {
   public static void main(String[] args) throws Exception {
      String jsonString = "{\"id\":\"115\", \"name\":\"Raja\", \"address\":[{\"area\":\"Madhapur\", \"city\":\"Hyderabad\"}]}";
      StringReader reader = new StringReader(jsonString);
      JsonReader jsonReader = Json.createReader(reader);
      System.out.println("Existing JSON: \n" + jsonString);
      StringWriter writer = new StringWriter();
      JsonWriter jsonWriter = Json.createWriter(writer);
      JsonObject jsonObject = jsonReader.readObject();
      JsonBuilderFactory jsonBuilderFactory = Json.createBuilderFactory(null);
      JsonObjectBuilder jsonObjectBuilder = jsonBuilderFactory.createObjectBuilder();
      for(String key : jsonObject.keySet()) {
         jsonObjectBuilder.add(key, jsonObject.get(key));
      }
      jsonObjectBuilder.add("Contact Number", "9959984000");
      jsonObjectBuilder.add("Country", "India");
      jsonObject = jsonObjectBuilder.build();
      jsonWriter.writeObject(jsonObject);
      System.out.println("new JSON: \n" + jsonObject);
   }
}

Đầu ra

Existing JSON:
{"id":"115", "name":"Raja", "address":[{"area":"Madhapur", "city":"Hyderabad"}]}

new JSON:
{"id":"115","name":"Raja","address":[{"area":"Madhapur","city":"Hyderabad"}],"Contact Number":"9959984000","Country":"India"}