কম্পিউটার টিউটোরিয়াল

অবজেক্ট মডেলে JsonWriter ব্যবহার করে JSON অবজেক্ট সিরিয়ালাইজ

javax.json.JsonWriter ইন্টারফেস JSON অবজেক্ট বা অ্যারে স্ট্রাকচার আউটপুট সোর্সে লেখতে ব্যবহৃত হয়। javax.json.JsonWriterFactory ক্লাসে JsonWriter ইনস্ট্যান্স তৈরি করার মেথড রয়েছে। একটি ফ্যাক্টরি ইনস্ট্যান্স একই কনফিগারেশনে একাধিক রাইटर ইনস্ট্যান্স তৈরি করতে পারে। javax.json.Json ক্লাসের স্ট্যাটিক createWriter() মেথড ব্যবহার করে আউটপুট সোর্স থেকে রাইटर তৈরি করা যায়।

সিনট্যাক্স

public static JsonWriter createWriter(Writer writer)

উদাহরণ

import java.io.StringWriter;
import javax.json.Json;
import javax.json.JsonObject;
import javax.json.JsonObjectBuilder;
import javax.json.JsonWriter;

public class JsonWriterTest {
    public static void main(String[] args) {
        JsonObject jsonObj = Json.createObjectBuilder()
            .add("name", "Adithya")
            .add("age", 25)
            .add("salary", 40000)
            .add("address", 
                Json.createObjectBuilder()
                    .add("street", "Madhapur")
                    .add("city", "Hyderabad")
                    .add("zipCode", "500084")
                    .build()
            )
            .add("phoneNumber", 
                Json.createArrayBuilder()
                    .add("9959984000")
                    .add("7702144400")
                    .build()
            )
            .build();
        
        StringWriter stringWriter = new StringWriter();
        JsonWriter writer = Json.createWriter(stringWriter);
        writer.writeObject(jsonObj);
        writer.close();
        
        System.out.println(stringWriter.getBuffer().toString());
    }
}

আউটপুট

{"name":"Adithya","age":25,"salary":40000,"address":{"street":"Madhapur","city":"Hyderabad","zipCode":"500084"},"phoneNumber":["9959984000","7702144400"]}

ব্যাখ্যা

  1. Json.createObjectBuilder() - বিল্ডার শুরু
  2. .add(key, value) - প্রিমিটিভ/স্ট্রিং ফিল্ড যোগ
  3. .add(key, Json.createObjectBuilder()...) - নেস্টেড অবজেক্ট যোগ
  4. .add(key, Json.createArrayBuilder()...) - অ্যারে যোগ
  5. .build() - অবজেক্ট তৈরি
  6. Json.createWriter(writer) - রাইटर তৈরি
  7. writer.writeObject(jsonObj) - লিখুন

আধুনিক বিকল্প (Jackson)

ObjectMapper mapper = new ObjectMapper();
String json = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(pojo);
// অথবা ম্যানুয়ালি:
ObjectNode node = mapper.createObjectNode();
node.put("name", "Adithya");
node.putArray("phones").add("9959984000");
String json = mapper.writeValueAsString(node);
  1. জাভাতে Flexjson ব্যবহার করে JSON কে জাভা অবজেক্টে ডিসিরিয়ালাইজ করার পদ্ধতি

  2. জাভাতে GSON ব্যবহার করে JSON অবজেক্টের সব কি পাওয়ার পদ্ধতি

  3. জাভাতে JSON অবজেক্ট ডিকোড করুন

  4. জাভা POJO কে JSON-এ কনভার্ট করা: Jackson এবং Gson ব্যবহার করে