JSON Schema Validation হলো একটি পদ্ধতি যা JSON ডেটার কাঠামো এবং কনটেন্ট যাচাই করতে ব্যবহৃত হয়। এটি একটি নির্দিষ্ট JSON object এর কাঠামো (structure) এবং মান (values) সঠিকভাবে গঠিত কি না তা যাচাই করে, যাতে আপনি নিশ্চিত হতে পারেন যে আপনার JSON ডেটা পূর্বনির্ধারিত শর্তাবলী অনুসরণ করছে। JSON Schema একটি ডকুমেন্টেশন বা স্কিমা যা JSON ডেটার জন্য বৈধ কাঠামো এবং মানের নিয়ম নির্ধারণ করে।
JSON Schema-এর সুবিধা:
- Data Integrity: এটি নিশ্চিত করে যে JSON ডেটা সঠিকভাবে ফরম্যাট করা হয়েছে এবং সমস্ত প্রয়োজনীয় ক্ষেত্রগুলি সঠিক টাইপের এবং সীমাবদ্ধতাগুলির মধ্যে পড়ে।
- Validation: JSON ডেটার ক্ষেত্রে ভুল টাইপ, অপর্যাপ্ত মান, বা অবাঞ্ছিত মান থাকা সমস্যাগুলি চিহ্নিত করা সহজ হয়।
- Interoperability: JSON স্কিমার মাধ্যমে বিভিন্ন সিস্টেম বা অ্যাপ্লিকেশন গুলি JSON ডেটা পার্স বা পাঠানোর সময় নির্দিষ্ট মানদণ্ড অনুসরণ করতে পারে।
- Documentation: JSON স্কিমা ডেটার কাঠামো স্পষ্টভাবে ডকুমেন্ট করতে সহায়ক, যা ডেভেলপারদের জন্য পার্স বা ডেটা হ্যান্ডলিং সহজ করে।
JSON Schema এর কাঠামো
JSON Schema সাধারণত JSON object হিসেবে থাকে এবং এতে properties, types, required fields, constraints, ইত্যাদি সম্পর্কে তথ্য থাকে। একটি সাধারণ JSON Schema দেখতে এইরকম হতে পারে:
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"name": {
"type": "string"
},
"age": {
"type": "integer",
"minimum": 18
},
"email": {
"type": "string",
"format": "email"
}
},
"required": ["name", "age"]
}
এখানে:
- $schema: স্কিমা সংক্রান্ত তথ্য।
- type: JSON object এর ধরণ (এখানে
object)। - properties: JSON object এর ফিল্ডগুলি এবং তাদের টাইপ।
- required: সেই ফিল্ডগুলি যেগুলি অবশ্যই থাকতে হবে (এখানে
nameএবংage)। - minimum: একটি মানের জন্য সীমাবদ্ধতা (এখানে
ageএর জন্য ১৮ বা তার বেশি হতে হবে)।
Gson এবং JSON Schema Validation
Gson নিজে JSON স্কিমা ভ্যালিডেশন সরাসরি সমর্থন করে না, তবে আপনি Gson এর সাথে JSON Schema Validation করতে কিছু বাইরের লাইব্রেরি ব্যবহার করতে পারেন। এই কাজটি করার জন্য একটি জনপ্রিয় লাইব্রেরি হলো Everit JSON Schema।
Gson এবং Everit JSON Schema ব্যবহার করে JSON Schema Validation
এখানে Everit JSON Schema লাইব্রেরি ব্যবহার করে Gson এর JSON ডেটার স্কিমা যাচাই করার উদাহরণ দেওয়া হলো।
১. প্রথমে লাইব্রেরি যুক্ত করা
আপনাকে Everit JSON Schema লাইব্রেরি ব্যবহার করতে হবে। Maven প্রোজেক্টে এটি যুক্ত করার জন্য নিচের ডিপেনডেন্সি ব্যবহার করতে পারেন:
<dependency>
<groupId>org.everit.json</groupId>
<artifactId>json-schema</artifactId>
<version>1.14.1</version>
</dependency>
২. JSON Schema Validation এর উদাহরণ
import com.google.gson.Gson;
import com.google.gson.JsonObject;
import org.everit.json.schema.*;
import org.everit.json.schema.loader.SchemaLoader;
import org.json.JSONObject;
public class Main {
public static void main(String[] args) {
// JSON schema definition
String schemaStr = "{\n" +
" \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n" +
" \"type\": \"object\",\n" +
" \"properties\": {\n" +
" \"name\": {\n" +
" \"type\": \"string\"\n" +
" },\n" +
" \"age\": {\n" +
" \"type\": \"integer\",\n" +
" \"minimum\": 18\n" +
" },\n" +
" \"email\": {\n" +
" \"type\": \"string\",\n" +
" \"format\": \"email\"\n" +
" }\n" +
" },\n" +
" \"required\": [\"name\", \"age\"]\n" +
"}";
// Example JSON object to validate
String jsonData = "{\n" +
" \"name\": \"John\",\n" +
" \"age\": 20,\n" +
" \"email\": \"john.doe@example.com\"\n" +
"}";
// Convert JSON Schema to JSONObject
JSONObject rawSchema = new JSONObject(schemaStr);
// Create Schema instance
Schema schema = SchemaLoader.load(rawSchema);
// Convert JSON data to JsonObject using Gson
Gson gson = new Gson();
JsonObject jsonObject = gson.fromJson(jsonData, JsonObject.class);
// Validate JSON data against the schema
try {
schema.validate(new JSONObject(jsonObject.toString()));
System.out.println("JSON is valid according to the schema.");
} catch (ValidationException e) {
System.out.println("JSON is invalid: " + e.getMessage());
}
}
}
কোডের ব্যাখ্যা:
- JSON Schema Definition: আমরা একটি JSON স্কিমা ডিফাইন করেছি যেখানে কিছু প্রপার্টি এবং কনস্ট্রেইন্ট দেওয়া হয়েছে।
- Everit JSON Schema Loader: SchemaLoader.load() পদ্ধতির মাধ্যমে স্কিমাটি লোড করা হয় এবং Schema অবজেক্ট তৈরি করা হয়।
- JSON Object Validation:
schema.validate()ব্যবহার করে JSON ডেটাকে স্কিমার সাথে যাচাই করা হয়। - যদি JSON ডেটা স্কিমার সাথে মিলে, তাহলে "JSON is valid according to the schema" মেসেজটি প্রদর্শিত হবে। অন্যথায়, ValidationException ধরা পড়ে এবং ত্রুটির মেসেজ দেখানো হয়।
JSON Schema এর কিছু সাধারণ বৈশিষ্ট্য:
- type: JSON ডেটার টাইপ (যেমন,
string,integer,object, ইত্যাদি)। - properties: JSON অবজেক্টের বিভিন্ন প্রপার্টি বা ফিল্ড।
- required: যে প্রপার্টিগুলি অবশ্যই থাকা উচিত (যেমন,
name,age)। - minimum / maximum: সংখ্যার জন্য সীমাবদ্ধতা নির্ধারণ।
- format: নির্দিষ্ট ফরম্যাট (যেমন,
email,date)। - enum: নির্দিষ্ট মানের একটি তালিকা (যেমন,
enum: ["small", "medium", "large"])।
JSON Schema Validation হল একটি গুরুত্বপূর্ণ প্রক্রিয়া যা JSON ডেটার কাঠামো এবং মান যাচাই করতে ব্যবহৃত হয়। Gson এর সাথে Everit JSON Schema লাইব্রেরি ব্যবহার করে আপনি সহজেই JSON ডেটা স্কিমা যাচাই করতে পারেন। এর মাধ্যমে আপনি আপনার JSON ডেটার সঠিকতা নিশ্চিত করতে পারবেন, যাতে ডেটা সঠিকভাবে প্রক্রিয়া এবং ব্যবহার করা যায়।
Read more