JSON ফাইলের Integrity এবং Consistency চেক করা

Gson এর সঙ্গে JSON Schema Validation - জিসন (Gson) - Java Technologies

320

JSON ফাইলের integrity এবং consistency চেক করা মূলত দুইটি বিষয়: একটির মাধ্যমে যাচাই করা হয় যে JSON ফাইলটি সঠিকভাবে ফরম্যাট করা হয়েছে কিনা এবং অন্যটি যাচাই করে যে ফাইলের ডেটা সঠিক এবং নিয়মিত (consistent) কিনা। Gson সরাসরি ইনটিগ্রিটি এবং কনসিস্টেন্সি চেকের জন্য কোন built-in ফিচার প্রদান না করলেও, আপনি কিছু প্রক্রিয়া ব্যবহার করে এই কাজটি করতে পারেন।

1. JSON ফাইলের Integrity চেক:

ফাইলের integrity চেক করতে, মূলত JSON ডেটার সঠিক ফরম্যাট যাচাই করা হয়। Gson লাইব্রেরি ব্যবহার করে আপনি সহজেই একটি JSON ফাইল লোড করতে পারেন এবং দেখতে পারেন এটি সঠিকভাবে ফরম্যাট করা হয়েছে কিনা। যদি JSON সঠিকভাবে ফরম্যাট না থাকে, তাহলে JsonSyntaxException এর মাধ্যমে একটি ত্রুটি তৈরি হবে।

উদাহরণ: JSON Integrity চেক করা

import com.google.gson.Gson;
import com.google.gson.JsonSyntaxException;
import java.io.FileReader;
import java.io.IOException;

public class JSONIntegrityCheck {
    public static void main(String[] args) {
        String filePath = "path_to_your_json_file.json"; // JSON ফাইলের পথ

        // Gson ইনস্ট্যান্স তৈরি
        Gson gson = new Gson();

        try (FileReader reader = new FileReader(filePath)) {
            // JSON ফাইলটি পার্স করা হচ্ছে
            gson.fromJson(reader, Object.class);
            System.out.println("JSON integrity check passed. The file is valid.");
        } catch (JsonSyntaxException e) {
            // যদি JSON সঠিক না হয়
            System.out.println("Invalid JSON format: " + e.getMessage());
        } catch (IOException e) {
            // ফাইল পড়ার ত্রুটি
            System.out.println("Error reading the file: " + e.getMessage());
        }
    }
}

এখানে gson.fromJson() মেথড ব্যবহার করে JSON ফাইলটি পড়া হচ্ছে এবং যদি JSON সঠিক না হয়, তাহলে JsonSyntaxException ধরা পড়বে। যদি JSON ফাইলটি সঠিকভাবে ফরম্যাট করা থাকে, তাহলে ইন্টিগ্রিটি চেকটি পাস করবে।

2. JSON ফাইলের Consistency চেক:

Consistency চেকের মানে হলো ফাইলের ডেটা সঠিক এবং যুক্তিসঙ্গত কিনা। এটি সাধারণত ডেটার কাঠামো এবং এর মধ্যে সম্পর্ক যাচাই করা। যেমন, যদি আপনি একটি JSON ফাইলের মধ্যে কিছু প্রপার্টি আশা করেন (যেমন একটি "price" ফিল্ড একটি সংখ্যার মান ধারণ করবে), তবে আপনি ডেটার consistency চেক করতে পারেন।

উদাহরণ: JSON Consistency চেক করা

ধরা যাক, আমাদের একটি Product ক্লাস আছে যার মধ্যে name (String), price (Double) এবং quantity (Integer) ফিল্ড রয়েছে। আমরা চাই নিশ্চিত করতে যে price এবং quantity ফিল্ডগুলির মান সঠিক ধরণের।

import com.google.gson.Gson;
import com.google.gson.JsonObject;
import com.google.gson.JsonSyntaxException;
import java.io.FileReader;
import java.io.IOException;

class Product {
    String name;
    Double price;
    Integer quantity;

    // Constructor, getters, setters omitted for brevity
}

public class JSONConsistencyCheck {
    public static void main(String[] args) {
        String filePath = "path_to_your_json_file.json"; // JSON ফাইলের পথ

        Gson gson = new Gson();

        try (FileReader reader = new FileReader(filePath)) {
            // JSON ফাইল পার্স করা হচ্ছে
            JsonObject jsonObject = gson.fromJson(reader, JsonObject.class);

            // Consistency চেক করা
            if (jsonObject.has("name") && jsonObject.has("price") && jsonObject.has("quantity")) {
                String name = jsonObject.get("name").getAsString();
                double price = jsonObject.get("price").getAsDouble();
                int quantity = jsonObject.get("quantity").getAsInt();

                // যাচাই করা হচ্ছে যে price এবং quantity সঠিক ডেটার ধরণ ধারণ করছে
                if (price >= 0 && quantity >= 0) {
                    System.out.println("JSON consistency check passed.");
                    System.out.println("Product Name: " + name);
                    System.out.println("Price: " + price);
                    System.out.println("Quantity: " + quantity);
                } else {
                    System.out.println("Invalid data: Price and quantity must be non-negative.");
                }
            } else {
                System.out.println("Missing required fields in the JSON.");
            }

        } catch (JsonSyntaxException e) {
            // যদি JSON সঠিক না হয়
            System.out.println("Invalid JSON format: " + e.getMessage());
        } catch (IOException e) {
            // ফাইল পড়ার ত্রুটি
            System.out.println("Error reading the file: " + e.getMessage());
        }
    }
}

ব্যাখ্যা:

  1. Integrity চেক: প্রথমে gson.fromJson() ব্যবহার করে JSON ফাইলটি পড়া হচ্ছে। যদি JSON ফাইলটি সঠিকভাবে ফরম্যাট করা না থাকে, তাহলে এটি JsonSyntaxException প্রদান করবে এবং আমরা সেটি কন্ট্রোল করতে পারব।
  2. Consistency চেক: JSON অবজেক্টের মধ্যে নির্দিষ্ট ফিল্ডগুলির উপস্থিতি যাচাই করা হচ্ছে। তারপর, price এবং quantity ফিল্ডের মানের ধরন এবং পরিসীমা চেক করা হচ্ছে (যেমন, price এবং quantity নেতিবাচক সংখ্যা হতে পারবে না)।

3. JSON Validation for Integrity:

আপনি যদি JSON ডেটা স্ট্রাকচারের বৈধতা (validation) করতে চান, তখন একটি JSON Schema ব্যবহার করা যেতে পারে। এই ক্ষেত্রে, Gson নিজে JSON Schema যাচাইয়ের জন্য সরাসরি কোন সমর্থন প্রদান করে না, তবে আপনি json-schema-validator লাইব্রেরি ব্যবহার করে এটি করতে পারেন। এর মাধ্যমে JSON এর কাঠামো এবং ডেটা টাইপ যাচাই করা যেতে পারে।

JSON Schema Validation:

<dependency>
    <groupId>com.github.fge</groupId>
    <artifactId>json-schema-validator</artifactId>
    <version>2.2.6</version>
</dependency>

সারাংশ:

  • Integrity চেক: JSON ফাইলের ফরম্যাট সঠিক কিনা তা যাচাই করার জন্য gson.fromJson() মেথড ব্যবহার করতে পারেন। JsonSyntaxException ত্রুটি দ্বারা আপনি JSON-এর সঠিকতা যাচাই করতে পারবেন।
  • Consistency চেক: JSON ডেটার ভিতরে নির্দিষ্ট ফিল্ডগুলির সঠিকতা এবং ডেটা টাইপ চেক করার জন্য আপনাকে কাস্টম চেক করতে হবে।
  • Schema Validation: JSON ফাইলের কাঠামো ও বৈধতা চেক করার জন্য JSON Schema ব্যবহার করা যেতে পারে।
Content added By
Promotion

Are you sure to start over?

Loading...