JSON Schema Validation এর জন্য লাইব্রেরি ব্যবহার

JSON Schema এবং Validation - জেসন (JSON) - Java Technologies

312

JSON Schema একটি ডেটা ফরম্যাট যা JSON ডেটার স্ট্রাকচার, ডেটা টাইপ এবং কন্টেন্টের বৈধতা পরীক্ষা করতে ব্যবহৃত হয়। এটি একটি স্ট্যান্ডার্ড যা JSON ডেটার গঠন এবং বৈধতা যাচাই করতে সাহায্য করে। JSON Schema Validation ব্যবহারের মাধ্যমে আপনি নিশ্চিত করতে পারেন যে JSON ডেটা সঠিকভাবে স্ট্রাকচার্ড এবং নির্দিষ্ট শর্ত পূরণ করছে কিনা।

Java তে JSON Schema Validation করার জন্য বিভিন্ন লাইব্রেরি ব্যবহার করা যেতে পারে। এই লাইব্রেরিগুলি JSON ডেটার স্কিমা অনুযায়ী বৈধতা যাচাই করতে সহায়তা করে এবং আপনি সহজেই আপনার অ্যাপ্লিকেশনে JSON ডেটা ভ্যালিডেশন ইন্টিগ্রেট করতে পারবেন।

Java তে JSON Schema Validation এর জন্য জনপ্রিয় লাইব্রেরি


  1. Jackson

    Jackson হল Java-এর একটি জনপ্রিয় লাইব্রেরি যা JSON পার্সিং এবং সিরিয়ালাইজেশনের জন্য ব্যবহৃত হয়। Jackson JSON Schema Validation এর জন্য একটি আনুষঙ্গিক লাইব্রেরি সরবরাহ করে, যার মাধ্যমে আপনি JSON ডেটা ভ্যালিডেশন করতে পারেন।

    Jackson ব্যবহার করার জন্য স্টেপস:

    • Jackson এর মধ্যে jackson-databind এবং jackson-module-jsonSchema লাইব্রেরি ব্যবহার করা হয়।

    উদাহরণ:

    import com.fasterxml.jackson.databind.JsonNode;
    import com.fasterxml.jackson.databind.ObjectMapper;
    import com.fasterxml.jackson.module.jsonSchema.JsonSchema;
    import com.fasterxml.jackson.module.jsonSchema.factories.SchemaFactoryWrapper;
    
    public class JsonSchemaValidation {
        public static void main(String[] args) throws Exception {
            String jsonData = "{\"name\": \"John\", \"age\": 30}";
            String jsonSchema = "{\"type\":\"object\",\"properties\":{\"name\":{\"type\":\"string\"},\"age\":{\"type\":\"integer\"}}}";
    
            ObjectMapper objectMapper = new ObjectMapper();
            JsonNode jsonNode = objectMapper.readTree(jsonData);
            JsonNode schemaNode = objectMapper.readTree(jsonSchema);
    
            // Validate the JSON against the schema
            SchemaFactoryWrapper visitor = new SchemaFactoryWrapper();
            objectMapper.acceptJsonFormatVisitor(jsonNode.getClass(), visitor);
            JsonSchema jsonSchema = visitor.finalSchema();
            
            // Perform validation here
            boolean valid = jsonSchema.validate(jsonNode).isEmpty();
            System.out.println("Is the JSON valid? " + valid);
        }
    }
    

    এখানে, Jackson এর মাধ্যমে JSON ডেটা এবং স্কিমা পোস্ট করা হয় এবং যাচাই করা হয়, JSON স্কিমার সাথে ডেটা মেলানো যাচ্ছে কিনা।

  2. Everit JSON Schema

    Everit JSON Schema হল একটি ছোট এবং দ্রুত JSON Schema validation লাইব্রেরি যা Java-তে JSON স্কিমা ভ্যালিডেশন সমর্থন করে। এটি একটি সহজ এবং হালকা লাইব্রেরি যা JSON Schema validation এফিশিয়েন্সি এবং কার্যকারিতা প্রদান করে।

    Everit JSON Schema ব্যবহার করার জন্য স্টেপস:

    • Maven এর মাধ্যমে লাইব্রেরি যুক্ত করতে হবে।

    উদাহরণ:

    <dependency>
        <groupId>org.everit.json</groupId>
        <artifactId>everit-json-schema</artifactId>
        <version>1.14.0</version>
    </dependency>
    

    Java কোড উদাহরণ:

    import org.everit.json.schema.Schema;
    import org.everit.json.schema.loader.SchemaLoader;
    import org.json.JSONObject;
    import org.json.JSONTokener;
    
    public class JsonSchemaValidationExample {
        public static void main(String[] args) {
            String jsonData = "{\"name\": \"John\", \"age\": 30}";
            String jsonSchema = "{\n" +
                                "  \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n" +
                                "  \"type\": \"object\",\n" +
                                "  \"properties\": {\n" +
                                "    \"name\": {\"type\": \"string\"},\n" +
                                "    \"age\": {\"type\": \"integer\"}\n" +
                                "  },\n" +
                                "  \"required\": [\"name\", \"age\"]\n" +
                                "}";
    
            JSONObject jsonSubject = new JSONObject(jsonData);
            JSONObject jsonSchemaObject = new JSONObject(jsonSchema);
    
            // Load the schema
            Schema schema = SchemaLoader.load(jsonSchemaObject);
    
            // Validate the JSON data against the schema
            schema.validate(jsonSubject);  // This will throw a ValidationException if invalid
    
            System.out.println("JSON is valid according to the schema!");
        }
    }
    

    এখানে, JSON ডেটা এবং JSON স্কিমার মধ্যে সঠিকতা যাচাই করা হয়েছে এবং JSON যদি সঠিক না হয়, তবে একটি ValidationException থ্রো হবে।

  3. JSONassert

    JSONassert লাইব্রেরি JSON এর মধ্যে ভার্চুয়াল কন্টেন্ট তুলনা করার জন্য ব্যবহৃত হয়, এবং এটি JSON ডেটার স্কিমা ভ্যালিডেশন করতে সক্ষম। এটি সাধারণত টেস্টিং ফ্রেমওয়ার্কে ব্যবহৃত হয়।

    JSONassert ব্যবহার করার জন্য স্টেপস:

    • JSONassert Maven dependency ইনস্টল করুন।
    <dependency>
        <groupId>org.skyscreamer</groupId>
        <artifactId>jsonassert</artifactId>
        <version>1.5.0</version>
        <scope>test</scope>
    </dependency>
    

    Java কোড উদাহরণ:

    import org.junit.Test;
    import static org.junit.Assert.*;
    import org.skyscreamer.jsonassert.JSONAssert;
    
    public class JsonValidationTest {
        @Test
        public void testJsonSchema() throws Exception {
            String expectedJson = "{\"name\":\"John\",\"age\":30}";
            String actualJson = "{\"name\":\"John\",\"age\":30}";
            
            // Validate that JSON is correct
            JSONAssert.assertEquals(expectedJson, actualJson, false);
        }
    }
    

    এখানে JSONAssert.assertEquals() ব্যবহার করে দুইটি JSON অবজেক্টের মধ্যে সঠিকতা যাচাই করা হয়েছে।

সারাংশ


Java তে JSON Schema Validation করার জন্য বেশ কিছু লাইব্রেরি পাওয়া যায়, যেমন Jackson, Everit JSON Schema, এবং JSONassert। এই লাইব্রেরিগুলি ব্যবহার করে আপনি সহজেই JSON ডেটা স্কিমার সাথে তুলনা করে তার বৈধতা যাচাই করতে পারেন। Everit JSON Schema লাইব্রেরি সবচেয়ে সরল এবং দ্রুত কাজ করে, যেখানে Jackson এবং JSONassert অন্য উন্নত বৈশিষ্ট্য প্রদান করে যেমন JSON ডেটার গভীর তুলনা এবং ফরম্যাটিং।

Content added By
Promotion

Are you sure to start over?

Loading...