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"]}
JsonObjectBuilder मुख्य मेथड्स
| मेथड | विवरण |
|---|---|
| add(String name, String value) | स्ट्रिंग वैल्यू जोड़ें |
| add(String name, int/long/double value) | न्यूमेरिक वैल्यू जोड़ें |
| add(String name, boolean value) | बूलियन वैल्यू जोड़ें |
| add(String name, JsonObject value) | नेस्टेड ऑब्जेक्ट जोड़ें |
| add(String name, JsonArray value) | नेस्टेड ऐरे जोड़ें |
| addNull(String name) | नल वैल्यू जोड़ें |
| build() | इम्यूटेबल JsonObject बनाएं |
JsonArrayBuilder मुख्य मेथड्स
Json.createArrayBuilder()
.add("value1")
.add(123)
.add(true)
.add(Json.createObjectBuilder().add("key", "value"))
.build();
JsonWriterFactory उपयोग
Map<String, Object> config = new HashMap<>();
config.put(JsonGenerator.PRETTY_PRINTING, true);
JsonWriterFactory factory = Json.createWriterFactory(config);
JsonWriter writer = factory.createWriter(stringWriter);
writer.writeObject(jsonObj);
स्ट्रीमिंग vs ऑब्जेक्ट मॉडल
| पहलू | ऑब्जेक्ट मॉडल (JsonObjectBuilder) | स्ट्रीमिंग (JsonGenerator) |
|---|---|---|
| मेमोरी | पूरा ट्री मेमोरी में | लो मेमोरी (स्ट्रीमिंग) |
| उपयोग में आसानी | सरल, फ्लुएंट API | अधिक जटिल |
| परफॉरमेंस | छोटे डॉक्यूमेंट्स के लिए अच्छा | बड़े डॉक्यूमेंट्स के लिए बेहतर |
| रैंडम एक्सेस | हां | नहीं (फॉरवर्ड ओनली) |
निर्भरताएं
पिछले आर्टिकल (1005094140) देखें।
नोट
javax.json (JSR 374) JEE स्टैंडर्ड API है। आधुनिक एप्लिकेशन्स में अक्सर Jackson/Gson पसंद किए जाते हैं उनकी रिचर फीचर सेट और बेहतर परफॉरमेंस के कारण।