JSON Data এর Tree Structure এবং Traversing

Gson এবং JSON Tree Model - জিসন (Gson) - Java Technologies

380

Gson লাইব্রেরি JSON ডেটার Tree Structure এবং Traversing এর মাধ্যমে JSON ডেটা সহজে পরিচালনা এবং প্রক্রিয়া করার সুযোগ দেয়। Gson JSON ডেটাকে JsonObject, JsonArray, JsonElement এর মতো ক্লাসগুলির মাধ্যমে স্টোর করে এবং আপনি এসব ক্লাস ব্যবহার করে JSON ডেটার মধ্যে ট্রাভার্স (যাত্রা) করতে পারেন।

Gson Tree Structure:

  • JsonElement: এটি Gson এর বেস ক্লাস যা JSON ডেটার বিভিন্ন ধরনের উপাদান প্রতিনিধিত্ব করে (যেমন JsonObject, JsonArray, JsonPrimitive)।
  • JsonObject: এটি JSON অবজেক্টকে প্রতিনিধিত্ব করে, যেখানে এক বা একাধিক key-value পেয়ার থাকে।
  • JsonArray: এটি JSON অ্যারে প্রতিনিধিত্ব করে, যা একটি এলিমেন্টের অ্যারে বা তালিকা।
  • JsonPrimitive: এটি JSON প্রিমিটিভ ভ্যালু (যেমন String, Number, Boolean) প্রতিনিধিত্ব করে।

JSON Data Tree Structure:

ধরা যাক আমাদের কাছে নিচের JSON ডেটা আছে:

{
  "name": "John",
  "age": 30,
  "address": {
    "street": "123 Main St",
    "city": "New York"
  },
  "phoneNumbers": ["123-456-7890", "987-654-3210"]
}

এই JSON ডেটা Gson-এ Tree Structure হিসেবে তৈরি করা যাবে, যেখানে JsonObject প্রধান অটম্বারে JSON অবজেক্টটি সংরক্ষণ করবে এবং এর মধ্যে address এবং phoneNumbers ফিল্ডগুলোও JsonObject এবং JsonArray আকারে থাকবে।


Gson Tree Structure এবং Traversing উদাহরণ:

1. JSON ডেটা Tree Structure তৈরি করা:

প্রথমে, Gson ব্যবহার করে JSON স্ট্রিং থেকে JSON ডেটা গঠন করা হবে:

import com.google.gson.*;

public class Main {
    public static void main(String[] args) {
        // JSON স্ট্রিং
        String json = "{\n" +
                "  \"name\": \"John\",\n" +
                "  \"age\": 30,\n" +
                "  \"address\": {\n" +
                "    \"street\": \"123 Main St\",\n" +
                "    \"city\": \"New York\"\n" +
                "  },\n" +
                "  \"phoneNumbers\": [\"123-456-7890\", \"987-654-3210\"]\n" +
                "}";

        // Gson অবজেক্ট তৈরি করুন
        JsonParser parser = new JsonParser();
        JsonElement element = parser.parse(json); // JSON স্ট্রিং থেকে JsonElement তৈরি

        // Tree Structure দেখে JSON ডেটা প্রিন্ট করুন
        System.out.println(element.toString());
    }
}

আউটপুট:

{
  "name": "John",
  "age": 30,
  "address": {
    "street": "123 Main St",
    "city": "New York"
  },
  "phoneNumbers": [
    "123-456-7890",
    "987-654-3210"
  ]
}

এখানে element একটি JsonElement যা JSON ডেটার পুরো ট্রি প্রতিনিধিত্ব করে।


2. JSON Tree Traversing (ট্রাভার্স করা):

আপনি Tree Structure এর মধ্যে ডেটা অ্যাক্সেস করতে এবং তার উপর অপারেশন করতে পারবেন। এটি করতে JsonObject, JsonArray, এবং JsonElement এর মেথড ব্যবহার করতে হবে।

a. JSON Object থেকে ফিল্ড অ্যাক্সেস করা:
public class Main {
    public static void main(String[] args) {
        String json = "{\n" +
                "  \"name\": \"John\",\n" +
                "  \"age\": 30,\n" +
                "  \"address\": {\n" +
                "    \"street\": \"123 Main St\",\n" +
                "    \"city\": \"New York\"\n" +
                "  },\n" +
                "  \"phoneNumbers\": [\"123-456-7890\", \"987-654-3210\"]\n" +
                "}";

        JsonParser parser = new JsonParser();
        JsonElement element = parser.parse(json);

        // JsonObject এর মধ্যে "name" এবং "age" ফিল্ডগুলো অ্যাক্সেস করুন
        JsonObject jsonObject = element.getAsJsonObject();

        String name = jsonObject.get("name").getAsString(); // name ফিল্ড থেকে স্ট্রিং ভ্যালু নিন
        int age = jsonObject.get("age").getAsInt(); // age ফিল্ড থেকে ইনটিজার ভ্যালু নিন

        System.out.println("Name: " + name);
        System.out.println("Age: " + age);
    }
}

আউটপুট:

Name: John
Age: 30

এখানে, getAsJsonObject() মেথডের মাধ্যমে JsonObject অবজেক্টে রূপান্তর করা হয়েছে এবং তারপর get("name")get("age") ফিল্ডগুলো থেকে মানগুলো অ্যাক্সেস করা হয়েছে।


b. JSON Array Traversing:

যেহেতু JSON অ্যারে JsonArray হিসেবে থাকে, আপনি এই অ্যারের উপাদানগুলোকে ট্রাভার্স (ব্রাউজ) করতে পারেন:

public class Main {
    public static void main(String[] args) {
        String json = "{\n" +
                "  \"name\": \"John\",\n" +
                "  \"age\": 30,\n" +
                "  \"address\": {\n" +
                "    \"street\": \"123 Main St\",\n" +
                "    \"city\": \"New York\"\n" +
                "  },\n" +
                "  \"phoneNumbers\": [\"123-456-7890\", \"987-654-3210\"]\n" +
                "}";

        JsonParser parser = new JsonParser();
        JsonElement element = parser.parse(json);

        JsonObject jsonObject = element.getAsJsonObject();

        // "phoneNumbers" অ্যারে ট্রাভার্স করা
        JsonArray phoneNumbers = jsonObject.getAsJsonArray("phoneNumbers");

        for (JsonElement phone : phoneNumbers) {
            System.out.println("Phone Number: " + phone.getAsString());
        }
    }
}

আউটপুট:

Phone Number: 123-456-7890
Phone Number: 987-654-3210

এখানে getAsJsonArray("phoneNumbers") মেথড ব্যবহার করে অ্যারে থেকে সমস্ত ফোন নম্বর বের করা হয়েছে এবং একটি লুপের মাধ্যমে প্রতিটি ফোন নম্বর প্রিন্ট করা হয়েছে।


c. Nested JSON Object Traversing:

যদি JSON-এ একটি নেস্টেড অবজেক্ট থাকে, যেমন address, আপনি সেই অবজেক্টটি ট্রাভার্স করতে পারবেন:

public class Main {
    public static void main(String[] args) {
        String json = "{\n" +
                "  \"name\": \"John\",\n" +
                "  \"age\": 30,\n" +
                "  \"address\": {\n" +
                "    \"street\": \"123 Main St\",\n" +
                "    \"city\": \"New York\"\n" +
                "  },\n" +
                "  \"phoneNumbers\": [\"123-456-7890\", \"987-654-3210\"]\n" +
                "}";

        JsonParser parser = new JsonParser();
        JsonElement element = parser.parse(json);

        JsonObject jsonObject = element.getAsJsonObject();

        // Nested "address" JSON Object ট্রাভার্স করা
        JsonObject address = jsonObject.getAsJsonObject("address");
        String street = address.get("street").getAsString();
        String city = address.get("city").getAsString();

        System.out.println("Street: " + street);
        System.out.println("City: " + city);
    }
}

আউটপুট:

Street: 123 Main St
City: New York

এখানে getAsJsonObject("address") ব্যবহার করে address ফিল্ড থেকে নেস্টেড JsonObject অ্যাক্সেস করা হয়েছে এবং তার মধ্যে থাকা street এবং city ফিল্ডগুলো থেকে মানগুলো বের করা হয়েছে।


সারসংক্ষেপ:

  • JsonElement: Gson-এ JSON ডেটার বেস ক্লাস, যা বিভিন্ন ধরনের JSON উপাদান (যেমন JsonObject, JsonArray, JsonPrimitive) প্রতিনিধিত্ব করে।
  • JsonObject: JSON অবজেক্ট, যা key-value পেয়ার সংরক্ষণ করে।
  • JsonArray: JSON অ্যারে, যা উপাদানগুলির তালিকা সংরক্ষণ করে।
  • Tree Traversing: JsonObject, JsonArray এবং JsonElement ব্যবহার করে JSON ডেটার মধ্যে ট্রাভার্স করা এবং ফিল্ডগুলো অ্যাক্সেস করা।
  • Gson এর মাধ্যমে আপনি JSON ডেটা ম্যানিপুলেট করতে পারেন এবং তার মধ্যে নেস্টেড অবজেক্ট ও অ্যারে সহজেই ট্রাভার্স করতে পারেন।

এভাবে আপনি Gson এর Tree Structure ব্যবহার করে JSON ডেটা প্রক্রিয়া করতে পারেন, যা খুবই শক্তিশালী এবং নমনীয় পদ্ধতি।

Content added By
Promotion

Are you sure to start over?

Loading...