Org.JSON দিয়ে JSON ডেটা ভ্যালিডেশন করা

JSON Schema Validation - অর্গ.জেসন (Org.Json) - Java Technologies

263

JSON ডেটা ভ্যালিডেশন একটি গুরুত্বপূর্ণ প্রক্রিয়া, যা JSON ডেটার সঠিকতা এবং কাঠামো যাচাই করার জন্য ব্যবহৃত হয়। যখন আপনি JSON ডেটা পার্স বা প্রসেস করেন, তখন নিশ্চিত হওয়া প্রয়োজন যে ডেটা সঠিক ফরম্যাটে রয়েছে এবং প্রত্যাশিত কাঠামো অনুসরণ করছে। Org.JSON লাইব্রেরি JSON ডেটা ভ্যালিডেশনের জন্য কিছু সহজ এবং কার্যকরী উপায় প্রদান করে।

এই টিউটোরিয়ালে, Org.JSON লাইব্রেরি ব্যবহার করে JSON ডেটার ভ্যালিডেশন করার বিভিন্ন পদ্ধতি দেখানো হবে।


১. অবজেক্ট সঠিকভাবে তৈরি হয়েছে কিনা চেক করা

প্রথম ধাপে আমরা যাচাই করব যে একটি JSON অবজেক্ট সঠিকভাবে তৈরি হয়েছে কিনা, অর্থাৎ JSON স্ট্রিংটি সঠিকভাবে পার্স হয়েছে কিনা। Org.JSON লাইব্রেরি আপনাকে JSONException দিতে পারে যদি JSON স্ট্রিংটি অবৈধ হয়।

উদাহরণ: অবৈধ JSON স্ট্রিং ভ্যালিডেশন

import org.json.JSONException;
import org.json.JSONObject;

public class JSONValidationExample {
    public static void main(String[] args) {
        // অবৈধ JSON স্ট্রিং (অতিরিক্ত কমা)
        String jsonString = "{\"name\":\"Alice\",\"age\":25,}";

        try {
            // JSON স্ট্রিং পার্স করা
            JSONObject jsonObject = new JSONObject(jsonString);
            System.out.println("Valid JSON: " + jsonObject);
        } catch (JSONException e) {
            // JSONException হ্যান্ডলিং
            System.out.println("Invalid JSON format: " + e.getMessage());
        }
    }
}

কোড ব্যাখ্যা

  • JSONException: যদি JSON স্ট্রিং অবৈধ হয় (যেমন অতিরিক্ত কমা বা ভুল ফরম্যাট), তখন JSONException উত্তোলিত হবে।
  • try-catch block: JSON স্ট্রিং পার্স করার সময় ত্রুটি হলে আমরা এটি catch করে ব্যাখ্যা দেখাতে পারি।

আউটপুট:

Invalid JSON format: A JSONObject text must begin with '{' at 1 [character 2 line 1]

এখানে, অবৈধ JSON স্ট্রিংয়ের জন্য JSONException হ্যান্ডল করা হয়েছে এবং ত্রুটির বার্তা প্রদর্শিত হয়েছে।


২. JSON অবজেক্টে কীগুলোর উপস্থিতি যাচাই করা

JSON অবজেক্টের মধ্যে নির্দিষ্ট কী রয়েছে কিনা তা যাচাই করা একটি সাধারণ ভ্যালিডেশন প্রক্রিয়া। Org.JSON লাইব্রেরি has() মেথড ব্যবহার করে JSON অবজেক্টে কীগুলোর উপস্থিতি পরীক্ষা করতে সাহায্য করে।

উদাহরণ: কী উপস্থিতি যাচাই করা

import org.json.JSONObject;

public class JSONKeyValidationExample {
    public static void main(String[] args) {
        // JSON স্ট্রিং
        String jsonString = "{\"name\":\"Bob\",\"age\":30}";

        // JSON স্ট্রিং পার্স করা
        JSONObject jsonObject = new JSONObject(jsonString);

        // কী উপস্থিতি চেক করা
        if (jsonObject.has("name")) {
            System.out.println("Name: " + jsonObject.getString("name"));
        } else {
            System.out.println("Key 'name' is missing.");
        }

        if (jsonObject.has("address")) {
            System.out.println("Address: " + jsonObject.getString("address"));
        } else {
            System.out.println("Key 'address' is missing.");
        }
    }
}

কোড ব্যাখ্যা

  • has() মেথড: এটি JSON অবজেক্টে একটি নির্দিষ্ট কী উপস্থিত কিনা তা যাচাই করে।
  • যদি "name" কী পাওয়া যায়, তাহলে তার মান প্রিন্ট করা হবে। যদি না পাওয়া যায়, তবে "Key 'name' is missing." বার্তা দেখানো হবে।

আউটপুট:

Name: Bob
Key 'address' is missing.

এখানে, has() মেথড ব্যবহার করে address কী অনুপস্থিত হওয়া সত্ত্বেও ত্রুটি ফেলে না, বরং একটি কাস্টম বার্তা দেখায়।


৩. ডেটা টাইপ যাচাই করা

JSON অবজেক্টের একটি কীর মানের টাইপ যাচাই করা প্রয়োজন হতে পারে, যেমন যদি কোনো কী integer, string, boolean ইত্যাদি টাইপে থাকে। Org.JSON লাইব্রেরি getType() মেথড সরবরাহ করে, যা নির্দিষ্ট কী-এর ডেটা টাইপ পরীক্ষা করতে সহায়ক।

উদাহরণ: ডেটা টাইপ যাচাই করা

import org.json.JSONObject;

public class JSONDataTypeValidationExample {
    public static void main(String[] args) {
        // JSON স্ট্রিং
        String jsonString = "{\"name\":\"Alice\",\"age\":25,\"isEmployed\":true}";

        // JSON স্ট্রিং পার্স করা
        JSONObject jsonObject = new JSONObject(jsonString);

        // ডেটা টাইপ যাচাই করা
        if (jsonObject.get("age") instanceof Integer) {
            System.out.println("Age is of type Integer");
        } else {
            System.out.println("Age is not of type Integer");
        }

        if (jsonObject.get("name") instanceof String) {
            System.out.println("Name is of type String");
        } else {
            System.out.println("Name is not of type String");
        }

        if (jsonObject.get("isEmployed") instanceof Boolean) {
            System.out.println("Employment status is of type Boolean");
        } else {
            System.out.println("Employment status is not of type Boolean");
        }
    }
}

কোড ব্যাখ্যা

  • instanceof: এটি চেক করতে ব্যবহৃত হয় যে কোনো কীর মান নির্দিষ্ট টাইপের কিনা, যেমন Integer, String, Boolean ইত্যাদি।
  • যদি টাইপ সঠিক হয়, তাহলে নির্দিষ্ট বার্তা দেখানো হবে।

আউটপুট:

Age is of type Integer
Name is of type String
Employment status is of type Boolean

এখানে, ডেটা টাইপ যাচাইয়ের মাধ্যমে নিশ্চিত হওয়া গেছে যে প্রতিটি কী সঠিক টাইপের।


৪. অ্যারে টাইপ JSON ডেটার ভ্যালিডেশন

JSON অ্যারে ভ্যালিডেশনের সময়, অ্যারের মধ্যে প্রতিটি অবজেক্ট বা ভ্যালু নির্দিষ্ট কাঠামোর (structure) অনুসরণ করছে কিনা তা যাচাই করা গুরুত্বপূর্ণ। উদাহরণস্বরূপ, অ্যারের মধ্যে থাকা JSON অবজেক্টের কীগুলোর উপস্থিতি এবং ডেটা টাইপ পরীক্ষা করা।

উদাহরণ: JSON অ্যারে ভ্যালিডেশন

import org.json.JSONArray;
import org.json.JSONObject;

public class JSONArrayValidationExample {
    public static void main(String[] args) {
        // JSON অ্যারে স্ট্রিং
        String jsonArrayString = "[{\"name\":\"John\",\"age\":28},{\"name\":\"Alice\",\"age\":25}]";

        // JSON অ্যারে পার্স করা
        JSONArray jsonArray = new JSONArray(jsonArrayString);

        // অ্যারের প্রতিটি অবজেক্টের জন্য কীগুলোর উপস্থিতি যাচাই
        for (int i = 0; i < jsonArray.length(); i++) {
            JSONObject jsonObject = jsonArray.getJSONObject(i);

            if (jsonObject.has("name") && jsonObject.has("age")) {
                System.out.println("Valid object at index " + i + ": " + jsonObject);
            } else {
                System.out.println("Invalid object at index " + i);
            }
        }
    }
}

কোড ব্যাখ্যা

  • JSONArray: এটি JSON অ্যারে ডেটাকে পার্স করে এবং তার মধ্যে থাকা প্রতিটি অবজেক্টের ভ্যালিডেশন করা হয়।
  • has(): প্রতিটি অবজেক্টের মধ্যে "name" এবং "age" কীগুলোর উপস্থিতি যাচাই করা হয়েছে।

আউটপুট:

Valid object at index 0: {"name":"John","age":28}
Valid object at index 1: {"name":"Alice","age":25}

এখানে, JSON অ্যারের প্রতিটি অবজেক্টে কীগুলোর উপস্থিতি যাচাই করা হয়েছে এবং সেগুলোর ভ্যালিডেশন করা হয়েছে।


সারাংশ

Org.JSON লাইব্রেরি ব্যবহার করে JSON ডেটা ভ্যালিডেশন করা একটি গুরুত্বপূর্ণ প্রক্রিয়া, যা JSON ডেটার কাঠামো এবং সঠিকতা যাচাই করার জন্য অপরিহার্য। এই টিউটোরিয়ালে JSON স্ট্রিং পার্সিং, কী উপস্থিতি যাচাই, ডেটা টাইপ যাচাই, এবং JSON অ্যারে ভ্যালিডেশন সম্পর্কে বিস্তারিত আলোচনা করা হয়েছে। JSONException হ্যান্ডলিংয়ের মাধ্যমে অবৈধ JSON স্ট্রিংয়ের ক্ষেত্রে নিরাপত্তা নিশ্চিত করা যায়, এবং has() মেথড এবং instanceof এর মাধ্যমে কী-এর উপস্থিতি এবং ডেটা টাইপ যাচাই করা যায়।


Content added By
Promotion

Are you sure to start over?

Loading...