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

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

net.sf.json.xml.XMLSerializer क्लास JSON को XML में ट्रांसफॉर्म करने के लिए एक यूटिलिटी क्लास है। जब JSONObject इंस्टेंस को XML में ट्रांसफॉर्म किया जाता है, तो यह क्लास JSON में वापस कन्वर्ट करने के लिए हिंट्स जोड़ सकती है। हम XMLSerializer क्लास के write() मेथड का उपयोग JSON वैल्यू को UTF-8 एनकोडिंग के साथ XML स्ट्रिंग में लिखने के लिए कर सकते हैं और यह एक वेल-फॉर्म्ड XML डॉक्यूमेंट का स्ट्रिंग रिप्रेजेंटेशन रिटर्न कर सकता है।

सिंटैक्स

public String write(JSON json)

उदाहरण

import net.sf.json.JSONObject;
import net.sf.json.xml.XMLSerializer;

public class ConvertBeanToXMLTest {
    public static void main(String[] args) {
        Student student = new Student("Sai", "Adithya", 25, "Pune");
        JSONObject jsonObj = JSONObject.fromObject(student);
        System.out.println(jsonObj.toString(3)); // प्रिटी प्रिंट JSON
        
        XMLSerializer xmlSerializer = new XMLSerializer();
        String xml = xmlSerializer.write(jsonObj);
        System.out.println(xml);
    }
    
    public static class Student {
        private String firstName, lastName, address;
        public int age;
        
        public Student(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 String getLastName() { return lastName; }
        public int getAge() { return age; }
        public String getAddress() { return address; }
    }
}

आउटपुट

{
  "firstName": "Sai",
  "lastName": "Adithya",
  "address": "Pune",
  "age": 25
}


  
Pune
25 Sai Adithya

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

  1. बीन → JSONObject: JSONObject.fromObject(bean)
  2. JSONObject → XML: XMLSerializer.write(jsonObj)
  3. टाइप हिंट्स: डिफ़ॉल्ट रूप से इनेबल्ड (type="string", type="number")

XML आउटपुट कस्टमाइजेशन

XMLSerializer serializer = new XMLSerializer();
serializer.setTypeHintsEnabled(false);        // टाइप हिंट्स हटाएं
serializer.setRootName("student");            // कस्टम रूट एलिमेंट
serializer.setNamespace("https://example.com"); // XML नेमस्पेस
String xml = serializer.write(jsonObj);

कस्टम रूट नाम के साथ आउटपुट



  
Pune
25 Sai Adithya

नेस्टेड ऑब्जेक्ट्स और कलेक्शन्स

class Student {
    String name;
    Address address;           // नेस्टेड ऑब्जेक्ट
    List<String> courses;     // कलेक्शन
}

// JSON: {"name":"Sai", "address":{"city":"Pune"}, "courses":["Java","Python"]}
// XML आउटपुट:

  Sai
  
Pune
Java Python

सीमाएं

  • एट्रिब्यूट्स vs एलिमेंट्स पर सीमित कंट्रोल
  • नेमस्पेस हैंडलिंग बेसिक है
  • XML स्कीमा वैलिडेशन बिल्ट-इन नहीं
  • कॉम्प्लेक्स XML स्ट्रक्चर्स के लिए अनुपयुक्त

आधुनिक विकल्प

  • Jackson XmlMapper: @JacksonXmlRootElement, @JacksonXmlProperty एनोटेशन्स
  • JAXB: @XmlRootElement, @XmlElement, स्कीमा जनरेशन
  • XStream: सरल API, कस्टम कन्वर्टर्स
  1. - Jackson लाइब्रेरी का उपयोग करके Java में POJO को XML में कैसे बदलें?

    Jackson एक Java-आधारित लाइब्रेरी है और यह Java ऑब्जेक्ट्स को JSON में और JSON को Java ऑब्जेक्ट में बदलने के लिए उपयोगी हो सकती है। Jackson API अन्य API से तेज़ है, कम मेमोरी क्षेत्र की आवश्यकता होती है और बड़े ऑब्जेक्ट्स के लिए अच्छी है। हम XmlMapper क्लास के writeValueAsString() मेथड का उपयोग करके

  1. - Java में XML को JSON ऐरे में कैसे बदलें?

    JSON एक हल्का डेटा-इंटरचेंज फॉर्मेट है और JSON का फॉर्मेट की-वैल्यू जोड़ी जैसा होता है। हम org.json.XML क्लास का उपयोग करके XML को JSON ऐरे में बदल सकते हैं, यह एक स्टैटिक मेथड, XML.toJSONObject() प्रदान करता है जो XML को JSON ऐरे में बदलता है। सिंटैक्स public static JSONObject toJSONObject(java.la

  1. - Java में CLOB टाइप को String में कैसे कन्वर्ट करें?

    CLOB का मतलब Character Large Object है। सामान्य तौर पर, एक SQL Clob एक बिल्ट-इन डेटाटाइप है और बड़ी मात्रा में टेक्स्टुअल डेटा स्टोर करने के लिए उपयोग किया जाता है। इस डेटाटाइप का उपयोग करके, आप 2,147,483,647 कैरेक्टर्स तक डेटा स्टोर कर सकते हैं। java.sql.Clob इंटरफेस JDBC API का CLOB डेटाटाइप को द