উদাহরণ সহ XML এবং JSON রূপান্তর

XML এবং JSON এর মধ্যে রূপান্তর - অ্যাপাচি জারসেস (Apache Xerces) - Java Technologies

296

Apache Xerces মূলত XML প্যার্সিং এবং প্রসেসিং লাইব্রেরি হলেও, JSON রূপান্তরের জন্য সরাসরি সমর্থন দেয় না। তবে, XML ডেটাকে JSON ফরম্যাটে রূপান্তর করার জন্য XStream বা Jackson মত লাইব্রেরি ব্যবহার করা যেতে পারে, যা JSON-এ রূপান্তরের জন্য উপযুক্ত। তবুও, Apache Xerces দিয়ে আপনি XML ডেটা প্যার্স করতে পারেন এবং JSON রূপান্তরের জন্য অতিরিক্ত লাইব্রেরি ব্যবহার করে সেই ডেটা JSON ফরম্যাটে রূপান্তর করতে পারেন।

এখানে, আমরা Apache Xerces ব্যবহার করে XML প্যার্সিং করবো এবং তার পর Jackson লাইব্রেরি ব্যবহার করে সেই XML ডেটাকে JSON ফরম্যাটে রূপান্তর করবো।


1. Maven Dependency

প্রথমে আপনাকে Apache Xerces এবং Jackson লাইব্রেরি দুটি Maven প্রজেক্টে যুক্ত করতে হবে।

Maven Dependencies:

<dependencies>
    <!-- Apache Xerces for XML parsing -->
    <dependency>
        <groupId>xerces</groupId>
        <artifactId>xercesImpl</artifactId>
        <version>2.12.1</version>
    </dependency>

    <!-- Jackson for JSON handling -->
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.13.0</version>
    </dependency>
</dependencies>

2. XML থেকে JSON রূপান্তরের উদাহরণ

আমরা Apache Xerces ব্যবহার করে XML ডেটা প্যার্স করবো এবং তারপর Jackson ব্যবহার করে JSON ফরম্যাটে রূপান্তর করবো।

XML Example (employee.xml):

<?xml version="1.0" encoding="UTF-8"?>
<employees>
    <employee>
        <name>John Doe</name>
        <age>30</age>
        <department>Engineering</department>
    </employee>
    <employee>
        <name>Jane Smith</name>
        <age>25</age>
        <department>Marketing</department>
    </employee>
</employees>

XML প্যার্সিং এবং JSON রূপান্তর কোড (Java):

import org.apache.xerces.parsers.DOMParser;
import org.w3c.dom.*;
import com.fasterxml.jackson.databind.ObjectMapper;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

public class XMLToJSONExample {

    // Employee class to store employee data
    static class Employee {
        public String name;
        public int age;
        public String department;

        public Employee(String name, int age, String department) {
            this.name = name;
            this.age = age;
            this.department = department;
        }
    }

    public static void main(String[] args) {
        try {
            // Create a DOMParser to parse the XML file
            DOMParser parser = new DOMParser();
            parser.parse("src/employee.xml");

            // Get the parsed document
            Document document = parser.getDocument();

            // Get all employee elements
            NodeList employeeNodes = document.getElementsByTagName("employee");

            // Create a list to hold Employee objects
            List<Employee> employees = new ArrayList<>();

            // Iterate over each employee element and extract the data
            for (int i = 0; i < employeeNodes.getLength(); i++) {
                Node employeeNode = employeeNodes.item(i);
                if (employeeNode.getNodeType() == Node.ELEMENT_NODE) {
                    Element employeeElement = (Element) employeeNode;

                    // Extract the name, age, and department
                    String name = employeeElement.getElementsByTagName("name").item(0).getTextContent();
                    int age = Integer.parseInt(employeeElement.getElementsByTagName("age").item(0).getTextContent());
                    String department = employeeElement.getElementsByTagName("department").item(0).getTextContent();

                    // Create an Employee object and add it to the list
                    employees.add(new Employee(name, age, department));
                }
            }

            // Use Jackson ObjectMapper to convert the list of Employee objects to JSON
            ObjectMapper objectMapper = new ObjectMapper();
            String jsonResult = objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(employees);

            // Print the JSON result
            System.out.println("Converted JSON: ");
            System.out.println(jsonResult);

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

কোড ব্যাখ্যা:

  1. DOMParser: XML ডেটা প্যার্স করার জন্য DOMParser ব্যবহার করা হয়েছে। এটি employee.xml ফাইলটি প্যার্স করে একটি Document অবজেক্ট তৈরি করে।
  2. Employee Class: Employee ক্লাস তৈরি করা হয়েছে যা কর্মী তথ্য ধারণ করে। এর মধ্যে name, age, এবং department প্রপার্টি রয়েছে।
  3. NodeList Iteration: document.getElementsByTagName("employee") ব্যবহার করে XML ডকুমেন্টের সমস্ত employee এলিমেন্ট সংগ্রহ করা হয়। তারপর প্রতিটি employee এলিমেন্ট থেকে নাম, বয়স, এবং বিভাগ বের করে একটি Employee অবজেক্ট তৈরি করা হয়।
  4. Jackson ObjectMapper: ObjectMapper ব্যবহার করে আমরা Employee অবজেক্টের তালিকাটি JSON ফরম্যাটে রূপান্তর করেছি। writeValueAsString() মেথডটি JSON রূপে ডেটা কনভার্ট করে।
  5. Pretty Print JSON: writerWithDefaultPrettyPrinter() ব্যবহার করে JSON আউটপুটটি সুন্দরভাবে ফরম্যাট করা হয়েছে।

3. আউটপুট:

এই কোডটি XML ডেটা প্যার্স করে এবং তারপর JSON ফরম্যাটে রূপান্তর করে। আউটপুট হবে:

Converted JSON: 
[
  {
    "name" : "John Doe",
    "age" : 30,
    "department" : "Engineering"
  },
  {
    "name" : "Jane Smith",
    "age" : 25,
    "department" : "Marketing"
  }
]

এখানে XML ডেটার প্রতিটি employee তথ্য JSON ফরম্যাটে রূপান্তরিত হয়েছে।


4. সারাংশ

Apache Xerces ব্যবহার করে XML প্যার্সিং এবং Jackson ব্যবহার করে JSON রূপান্তর একটি শক্তিশালী সমাধান যা XML ডেটাকে JSON ফরম্যাটে রূপান্তর করতে সাহায্য করে। Apache Xerces XML ডেটা প্যার্স করতে সাহায্য করে এবং Jackson JSON ডেটা প্রক্রিয়া এবং রূপান্তরের জন্য একটি জনপ্রিয় লাইব্রেরি। এই উদাহরণে আমরা XML ডেটা প্যার্স করে এবং তা JSON ফরম্যাটে রূপান্তর করেছি, যা বিভিন্ন প্রোজেক্টে ডেটা এক্সচেঞ্জ বা স্টোরেজের জন্য উপযোগী হতে পারে।

Content added By
Promotion

Are you sure to start over?

Loading...