JsonBuilderFactory ইন্টারফেস JsonObjectBuilder ইনস্ট্যান্স তৈরি করার ফ্যাক্টরি। JsonObjectBuilder স্ক্র্যাচ থেকে JsonObject মডেল বিল্ড করার বিল্ডার। এই ইন্টারফেস একটি খালি JSON অবজেক্ট মডেল ইনিশিয়ালাইজ করে এবং অবজেক্ট মডেলে নেম/ভ্যালু পেয়ার যোগ করার মেথড এবং ফলাফল রিটার্ন করার মেথড প্রদান করে। createObjectBuilder() মেথড ব্যবহার করে JsonObjectBuilder ইনস্ট্যান্স তৈরি করা যায়।
সিনট্যাক্স
JsonObjectBuilder createObjectBuilder()
উদাহরণ
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"}
ব্যাখ্যা
- JsonReader দিয়ে স্ট্রিং থেকে JsonObject পার্স
- JsonBuilderFactory থেকে JsonObjectBuilder তৈরি
- পুরনো JsonObject-এর সব কী/ভ্যালু কপি করুন বিল্ডারে
- নতুন ফিল্ড যোগ করুন (add())
- build() কল করে নতুন JsonObject পান
আধুনিক বিকল্প (Jackson)
ObjectMapper mapper = new ObjectMapper();
ObjectNode node = (ObjectNode) mapper.readTree(jsonString);
node.put("Contact Number", "9959984000");
node.put("Country", "India");
String updatedJson = mapper.writeValueAsString(node);