Gson এর Streaming API এর ধারণা

Gson Streaming API - জিসন (Gson) - Java Technologies

359

Gson এর Streaming API একটি শক্তিশালী ফিচার যা আপনাকে খুব বড় JSON ডেটা ফাইলগুলিকে খুবই কম মেমরি ব্যবহার করে পার্স করতে এবং জেনারেট করতে সাহায্য করে। Gson এর স্ট্রিমিং API আপনাকে একটি SAX-like পদ্ধতি অনুসরণ করতে দেয়, যেখানে আপনি JSON ডেটা গুলি এক্সট্রাক্ট বা প্রসেস করতে পারেন ধারাবাহিকভাবে (streaming)। এটি বিশেষভাবে সুবিধাজনক যখন আপনি বড় JSON ফাইল বা ডেটা সেট কাজ করছেন।

Gson এর স্ট্রিমিং API দ্বারা, আপনি JSON ফাইলের প্রতিটি অংশ (যেমন, ক্ষেত্র বা উপাদান) আলাদাভাবে প্রসেস করতে পারবেন, যাতে এটি কম মেমরি খরচে কাজ করতে পারে। এটি একটি "লিনিয়ার" পদ্ধতিতে JSON পার্সিং সম্পন্ন করে, যেখানে ডেটার সবগুলো এলিমেন্ট একে একে পড়া হয়, এবং পুরো JSON অবজেক্ট বা অ্যারে একবারে মেমরিতে লোড করা হয় না।

Gson Streaming API এর মূল উপাদান:

  • JsonReader: JSON ডেটা থেকে তথ্য পড়ার জন্য ব্যবহার করা হয়।
  • JsonWriter: JSON ডেটা লেখার জন্য ব্যবহার করা হয়।

1. JsonReader দিয়ে JSON পড়া (Streaming API ব্যবহার করে)**

JsonReader ক্লাস ব্যবহার করে আপনি JSON ডেটা ধারাবাহিকভাবে (stream) পড়তে পারেন। এর মাধ্যমে আপনি JSON ফাইল বা স্ট্রিংটি পুরোপুরি মেমরিতে লোড না করে, একে একে এর উপাদানগুলো প্রক্রিয়া করতে পারবেন।

উদাহরণ (JsonReader দিয়ে JSON পড়া):

import com.google.gson.stream.JsonReader;
import com.google.gson.stream.JsonToken;
import java.io.StringReader;

public class Main {
    public static void main(String[] args) throws Exception {
        String json = "{\"name\":\"John Doe\", \"age\":30, \"city\":\"New York\"}";

        // JsonReader ব্যবহার করে JSON স্ট্রিং পড়া
        JsonReader reader = new JsonReader(new StringReader(json));

        reader.beginObject(); // JSON অবজেক্ট শুরু

        while (reader.hasNext()) {
            String name = reader.nextName(); // নাম পড়া

            if (name.equals("name")) {
                System.out.println("Name: " + reader.nextString());
            } else if (name.equals("age")) {
                System.out.println("Age: " + reader.nextInt());
            } else if (name.equals("city")) {
                System.out.println("City: " + reader.nextString());
            }
        }

        reader.endObject(); // JSON অবজেক্ট শেষ
        reader.close();
    }
}

আউটপুট:

Name: John Doe
Age: 30
City: New York

2. JsonWriter দিয়ে JSON লেখা (Streaming API ব্যবহার করে)**

JsonWriter ক্লাস ব্যবহার করে আপনি JSON ডেটা তৈরি এবং লিখতে পারেন। এই ক্লাসটি JSON অবজেক্ট এবং অ্যারে সঠিকভাবে তৈরি করতে স্ট্রিমিং পদ্ধতি ব্যবহার করে।

উদাহরণ (JsonWriter দিয়ে JSON লেখা):

import com.google.gson.stream.JsonWriter;
import java.io.StringWriter;
import java.io.IOException;

public class Main {
    public static void main(String[] args) throws IOException {
        // StringWriter তৈরি
        StringWriter stringWriter = new StringWriter();
        
        // JsonWriter তৈরি
        JsonWriter writer = new JsonWriter(stringWriter);

        writer.beginObject(); // JSON অবজেক্ট শুরু

        writer.name("name").value("John Doe");
        writer.name("age").value(30);
        writer.name("city").value("New York");

        writer.endObject(); // JSON অবজেক্ট শেষ

        writer.close();
        
        // JSON আউটপুট প্রিন্ট করা
        System.out.println(stringWriter.toString());
    }
}

আউটপুট:

{
  "name": "John Doe",
  "age": 30,
  "city": "New York"
}

3. প্রধান বৈশিষ্ট্যসমূহ:

  • Memory Efficiency: স্ট্রিমিং API কম মেমরি ব্যবহার করে বড় JSON ডেটা ফাইলগুলি প্রসেস করতে সাহায্য করে। এটি JSON ডেটা পুরোপুরি মেমরিতে লোড না করে ধারাবাহিকভাবে (streaming) পড়ার সুযোগ দেয়।
  • Efficient Parsing and Writing: JsonReader এবং JsonWriter ক্লাসগুলির মাধ্যমে JSON ডেটা খুব দ্রুত এবং কার্যকরীভাবে পঠন এবং লেখা সম্ভব। JSON ডেটা খুব বড় হলে পুরো ডেটা একবারে মেমরিতে লোড না করেই কাজ করতে পারা সুবিধা।
  • Streaming: স্ট্রিমিং API শুধুমাত্র প্রয়োজনীয় তথ্য একে একে অ্যাক্সেস করে, ফলে এটি গন্তব্য ডেটা সংরক্ষণে সহায়ক হয়।

4. কিভাবে ব্যবহার করবেন:

  • JsonReader ব্যবহার করে আপনি JSON ডেটা পড়তে পারেন একটি স্ট্রিমে, যেখানে আপনাকে JSON ডেটার প্রতিটি উপাদান (যেমন নাম, মান) আলাদাভাবে পড়ে প্রক্রিয়া করতে হবে।
  • JsonWriter ব্যবহার করে আপনি একটি JSON ডেটা স্ট্রিম তৈরি করতে পারেন যেখানে আপনি উপাদানগুলি একে একে লিখবেন।

5. উপকারিতা:

  • বড় JSON ডেটা বা ফাইল হ্যান্ডল করতে সাহায্য করে।
  • মেমরি ব্যবহারের পরিমাণ কমায়, বিশেষ করে যখন বড় JSON ফাইল থাকে।
  • দ্রুত পার্সিং এবং লেখার জন্য সুবিধাজনক।

6. প্রয়োজনীয় ক্ষেত্র:

  • বড় JSON ফাইলগুলি প্রসেস করার জন্য, যেখানে পুরো ফাইল একবারে মেমরিতে লোড করা সম্ভব নয়।
  • যখন আপনি JSON ডেটাকে ধাপে ধাপে পড়তে বা লিখতে চান।

Gson এর Streaming API খুবই কার্যকরী এবং মেমরি-প্রভাবিত ডেটা প্রক্রিয়াকরণের জন্য আদর্শ। এটি বিশেষভাবে দরকারি যখন আপনি খুব বড় JSON ডেটা ফাইল বা স্ট্রিং নিয়ে কাজ করছেন, এবং আপনাকে পুরো ডেটা একবারে মেমরিতে লোড না করে একে একে প্রক্রিয়া করতে হচ্ছে।

Content added By
Promotion

Are you sure to start over?

Loading...