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

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

JSONObject क्लास नाम/वैल्यू पेयर्स का एक कलेक्शन है (अनऑर्डर्ड) जबकि बीन अपने मेंबर फील्ड्स के लिए सेटर और गेटर मेथड्स वाली क्लास है। हम JSONObject क्लास के toBean() मेथड का उपयोग करके JSON ऑब्जेक्ट को बीन में कन्वर्ट कर सकते हैं।

सिंटैक्स

public static Object toBean(JSONObject jsonObject, Class beanClass)

उदाहरण

import net.sf.json.JSONObject;

public class ConvertJSONObjToBeanTest {
    public static void main(String[] args) {
        Employee emp = new Employee("Sai", "Ram", 30, "Bangalore");
        JSONObject jsonObj = JSONObject.fromObject(emp);
        System.out.println(jsonObj.toString(3)); // प्रिटी प्रिंट JSON
        
        emp = (Employee) JSONObject.toBean(jsonObj, Employee.class);
        System.out.println(emp.toString());
    }
    
    // Employee क्लास
    public static class Employee {
        private String firstName, lastName, address;
        private int age;
        
        public Employee() { }
        
        public Employee(String firstName, String lastName, int age, String address) {
            super();
            this.firstName = firstName;
            this.lastName = lastName;
            this.age = age;
            this.address = address;
        }
        
        // गेटर्स और सेटर्स...
        public String getFirstName() { return firstName; }
        public void setFirstName(String firstName) { this.firstName = firstName; }
        public String getLastName() { return lastName; }
        public void setLastName(String lastName) { this.lastName = lastName; }
        public int getAge() { return age; }
        public void setAge(int age) { this.age = age; }
        public String getAddress() { return address; }
        public void setAddress(String address) { this.address = address; }
        
        public String toString() {
            return "Employee[ " +
                   "firstName = " + firstName +
                   ", lastName = " + lastName +
                   ", age = " + age +
                   ", address = " + address +
                   " ]";
        }
    }
}

आउटपुट

{
  "firstName": "Sai",
  "lastName": "Ram",
  "address": "Bangalore",
  "age": 30
}
Employee[ firstName = Sai, lastName = Ram, age = 30, address = Bangalore ]

प्रक्रिया प्रवाह

  1. बीन → JSON: JSONObject.fromObject(bean) - बीन को JSONObject में कन्वर्ट करता है
  2. JSON → बीन: JSONObject.toBean(jsonObj, BeanClass.class) - JSONObject को बीन में कन्वर्ट करता है
  3. आवश्यकताएं: डिफ़ॉल्ट कंस्ट्रक्टर, गेटर्स/सेटर्स, JSON कीज़ प्रॉपर्टी नामों से मेल खानी चाहिए

एडवांस्ड कन्वर्जन विकल्प

// कस्टम प्रॉपर्टी सेटर के साथ
BeanUtilsBean beanUtils = new BeanUtilsBean();
JSONObject.toBean(jsonObj, BeanClass.class, beanUtils);

// टाइप हिंट्स के साथ (क्लास इन्फो के लिए)
jsonObj.put("@class", "com.example.Employee");
Employee emp = (Employee) JSONObject.toBean(jsonObj, Employee.class);

// नेस्टेड बीन्स के लिए
class Address { String city; }
class Employee { Address address; }
// JSON: {"address": {"city": "Hyderabad"}}
// ऑटोमैटिकली Address बीन बनाता है

सामान्य समस्याएं और समाधान

समस्या समाधान
डिफ़ॉल्ट कंस्ट्रक्टर नहींपब्लिक नो-आर्ग कंस्ट्रक्टर जोड़ें
सेटर नहीं मिलासभी फील्ड्स के लिए सेटर मेथड्स सुनिश्चित करें
टाइप मिसमैचJSON वैल्यू टाइप बीन प्रॉपर्टी टाइप से मेल खाना चाहिए
केस सेंसिटिविटीJSON कीज़ प्रॉपर्टी नामों से मेल खानी चाहिए (केस-सेंसिटिव)

नोट

JSON-lib लिगेसी लाइब्रेरी है। आधुनिक एप्लिकेशन्स के लिए Jackson (ObjectMapper.readValue) या Gson (fromJson) का उपयोग करें जो बेहतर टाइप सेफ्टी, परफॉरमेंस और मेंटेनेंस प्रदान करते हैं।

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

    JSON एक हल्का, टेक्स्ट-आधारित और भाषा-स्वतंत्र डेटा एक्सचेंज फॉर्मेट है। JSON दो संरचित प्रकारों जैसे ऑब्जेक्ट्स और ऐरे को दर्शा सकता है। एक ऑब्जेक्ट की/वैल्यू पेयर्स का एक अनऑर्डर्ड कलेक्शन है और एक ऐरे मानों का एक क्रमबद्ध अनुक्रम है।हम org.json.simple.JSONValue के toJSONString() मेथड (स्टैटिक) का

  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