Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

Java에서 javax.json API를 사용하여 기존 JSON 데이터를 어떻게 업데이트할 수 있습니까?


JsonBuilderFactory 인터페이스는 JsonObjectBuilder 를 생성하기 위한 팩토리입니다. 인스턴스 및 JsonObjectBuilder JsonObject 생성을 위한 빌더입니다. 처음부터 모델. 이 인터페이스는 빈 JSON 을 초기화합니다. 개체 모델 및 이름/값 쌍 추가 방법 제공 개체 모델로 이동하고 결과 개체를 반환합니다. JsonObjectBuilder 를 만들 수 있습니다. JsonObject 를 빌드하는 데 사용할 수 있는 인스턴스 createObjectBuilder 사용 () 메서드.

구문

JsonObjectBuilder createObjectBuilder()

아래 예에서는 새로 추가된 데이터로 기존 JSON 데이터를 업데이트할 수 있습니다.

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);
   }
}

출력

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"}