Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Java

जावा में JSON-lib API का उपयोग करके Map को JSON ऑब्जेक्ट में कैसे कन्वर्ट करें

एक JSONObject नाम/वैल्यू पेयर्स का एक अनऑर्डर्ड कलेक्शन है जबकि Map एक ऑब्जेक्ट है जो कीज़ को वैल्यूज से मैप करता है। एक Map में डुप्लिकेट कीज़ नहीं हो सकतीं और प्रत्येक की अधिकतम एक वैल्यू से मैप हो सकती है। हमें JSON-lib लाइब्रेरी की आवश्यकता होती है सीरियलाइजिंग और डीसीरियलाइजिंग के लिए Map को JSON फॉर्मेट में। प्रारंभ में, हम एक POJO क्लास बना सकते हैं और इस इंस्टेंस को Map क्लास के put() मेथड के आर्गुमेंट के रूप में पास कर सकते हैं और अंत में इस मैप इंस्टेंस को JSONObject के accumulateAll() मेथड में जोड़ सकते हैं।

सिंटैक्स

public void accumulateAll(Map map)

उदाहरण

import java.util.*;
import net.sf.json.JSONObject;

public class ConvertMapToJSONObjectTest {
    public static void main(String[] args) throws Exception {
        JSONObject jsonObject = new JSONObject();
        Map<Integer, Employee> employees = new HashMap<>();
        employees.put(1, new Employee("Adithya", "Jai", 30));
        employees.put(2, new Employee("Vamsi", "Krishna", 28));
        employees.put(3, new Employee("Chaitanya", "Sai", 30));
        jsonObject.accumulateAll(employees);
        System.out.println(jsonObject.toString(3)); // प्रिटी प्रिंट JSON
    }
    
    public static class Employee {
        private String firstName, lastName;
        private int age;
        
        public Employee(String firstName, String lastName, int age) {
            super();
            this.firstName = firstName;
            this.lastName = lastName;
            this.age = age;
        }
        
        // गेटर्स...
        public String getFirstName() { return firstName; }
        public String getLastName() { return lastName; }
        public int getAge() { return age; }
    }
}

आउटपुट

{
  "1": {
    "firstName": "Adithya",
    "lastName": "Jai",
    "age": 30
  },
  "2": {
    "firstName": "Vamsi",
    "lastName": "Krishna",
    "age": 28
  },
  "3": {
    "firstName": "Chaitanya",
    "lastName": "Sai",
    "age": 30
  }
}

मुख्य बिंदु

  • accumulateAll(): मैप के सभी एंट्रीज को JSONObject में जोड़ता है
  • की कन्वर्जन: मैप कीज़ JSON स्ट्रिंग कीज़ बन जाती हैं (toString() के माध्यम से)
  • वैल्यू कन्वर्जन: मैप वैल्यूज JSON ऑब्जेक्ट्स बन जाती हैं (बीन कन्वर्जन के माध्यम से)
  • डुप्लिकेट कीज़: बाद की वैल्यूज पहले की वैल्यूज को ओवरराइट करती हैं

वैकल्पिक दृष्टिकोण

// JSONObject.fromObject() सीधे
Map<String, Object> map = new HashMap<>();
map.put("name", "John");
map.put("age", 30);
JSONObject json = JSONObject.fromObject(map);

// JSONArray में कन्वर्ट (यदि मैप वैल्यूज कलेक्शन हैं)
Map<String, List<String>> map = ...;
JSONArray array = JSONArray.fromObject(map.values());

आधुनिक विकल्प (Jackson)

ObjectMapper mapper = new ObjectMapper();
Map<String, Object> map = Map.of("name", "John", "age", 30);
String json = mapper.writeValueAsString(map);

// या सीधे
JsonNode node = mapper.valueToTree(map);

आधुनिक विकल्प (Gson)

Gson gson = new Gson();
Map<String, Object> map = Map.of("name", "John", "age", 30);
String json = gson.toJson(map);

नेस्टेड मैप्स

Map<String, Map<String, Object>> nested = new HashMap<>();
nested.put("user", Map.of("name", "John", "address", Map.of("city", "NYC")));
// JSON: {"user": {"name": "John", "address": {"city": "NYC"}}}

नोट

JSON-lib लिगेसी लाइब्रेरी है। Jackson या Gson नेटिव Map सपोर्ट, बेहतर परफॉरमेंस, टाइप सेफ्टी और सक्रिय मेंटेनेंस प्रदान करते हैं।

  1. - Java में JSON स्ट्रिंग को JSON ऑब्जेक्ट में कैसे बदलें?

    JSON का मतलब JavaScript Object Notation है और इसका उपयोग डेटा के ट्रांसफर और स्टोरेज के लिए किया जा सकता है। JSONObject एक String से टेक्स्ट पार्स करके मैप-जैसा ऑब्जेक्ट बना सकता है। ऑब्जेक्ट अपनी सामग्री में हेरफेर करने के लिए मेथड्स प्रदान करता है, और JSON कंप्लायंट ऑब्जेक्ट सीरियलाइज़ेशन उत्पन्न

  1. - Jackson और Gson का उपयोग करके Java POJO को JSON में आसानी से बदलें

    इस ट्यूटोरियल में हम दिखाते हैं कि दो लाइब्रेरी, Jackson और Gson का उपयोग करके Java ऑब्जेक्ट को JSON में कैसे बदलें। हम एक Person क्लास का उपयोग करेंगे जो सिर्फ एक स्टैंडर्ड POJO है। एक बार Person ऑब्जेक्ट बनाने के बाद, हम इसे विभिन्न लाइब्रेरी का उपयोग करके JSON में बदल सकते हैं। Person.java import

  1. - Java Map को JSON में बदलना: Jackson, Gson, और org.json के साथ चरण-दर-चरण गाइड

    Java Map को JSON में बदलने के कई तरीके हैं। Java Arrays और Maps को JSON में बदलना और इसके विपरीत करना काफी आम है। इस पोस्ट में, हम Java Map को JSON में बदलने के 3 अलग-अलग उदाहरण देखेंगे। हम Jackson, Gson और org.json लाइब्रेरी का उपयोग करेंगे। Jackson का उपयोग करके Java Map को JSON में बदलें निम्न उद