Org.JSON লাইব্রেরি Java তে JSON ডেটার সাথে কাজ করার জন্য শক্তিশালী এবং কার্যকরী ফিচার প্রদান করে। JSON Pointer এবং JSON Patch দুটি গুরুত্বপূর্ণ টুল যা JSON ডেটা ম্যানিপুলেশন এবং অ্যাক্সেস করতে সহায়তা করে। এই দুটি কনসেপ্ট মূলত JSON ডেটা আপডেট বা পরিবর্তন করতে ব্যবহৃত হয়। চলুন, এগুলোর প্রতি এক নজর দিই।
JSON Pointer একটি স্ট্যান্ডার্ড যা JSON ডেটাতে নির্দিষ্ট একটি অংশ বা মান অ্যাক্সেস করতে ব্যবহৃত হয়। এটি একটি স্ট্রিং হিসেবে নির্দিষ্ট পাথ (path) দেয়, যা JSON অবজেক্টের মধ্যে একটি নির্দিষ্ট স্থানে নির্দেশ করে। JSON Pointer ব্যবহার করে JSON ডেটার মধ্যে সুনির্দিষ্ট মানগুলি অ্যাক্সেস বা সংশোধন করা যায়।
ধরা যাক, আমাদের একটি JSON অবজেক্ট রয়েছে এবং আমরা JSON Pointer ব্যবহার করে তার ভিতরে একটি নির্দিষ্ট মান অ্যাক্সেস করতে চাই।
{
"name": "John Doe",
"age": 30,
"address": {
"street": "123 Main St",
"city": "Springfield"
}
}
import org.json.JSONObject;
import org.json.JSONPointer;
public class JSONPointerExample {
public static void main(String[] args) {
// JSON অবজেক্ট তৈরি
JSONObject jsonObject = new JSONObject();
jsonObject.put("name", "John Doe");
jsonObject.put("age", 30);
JSONObject address = new JSONObject();
address.put("street", "123 Main St");
address.put("city", "Springfield");
jsonObject.put("address", address);
// JSON Pointer তৈরি
JSONPointer pointer = new JSONPointer("/address/city");
// JSON Pointer ব্যবহার করে নির্দিষ্ট মান অ্যাক্সেস করা
Object city = pointer.queryFrom(jsonObject);
// ফলাফল প্রিন্ট করা
System.out.println("City: " + city); // Output: Springfield
}
}
/address/city
যেখানে /
হল রুট থেকে একটি পাথ নির্দেশ, এবং address/city
হল নির্দিষ্ট কনটেন্টের পাথ।queryFrom()
মেথডটি JSONPointer দ্বারা নির্দিষ্ট পাথের মান বের করতে ব্যবহৃত হয়।JSON Patch হল একটি স্ট্যান্ডার্ড যা JSON ডেটার মধ্যে পরিবর্তন বা আপডেট করার জন্য ব্যবহৃত হয়। এটি একটি JSON ডকুমেন্টে ছোট ছোট পরিবর্তন বা প্যাচ (patch) প্রয়োগ করতে সাহায্য করে, যেমন নতুন মান যোগ করা, বিদ্যমান মান পরিবর্তন করা বা মান মুছে ফেলা। JSON Patch সাধারণত অ্যাপ্লিকেশনগুলিতে ব্যবহার করা হয় যেখানে JSON ডেটার পরিবর্তন বা আপডেট দরকার হয়।
ধরা যাক, আমাদের একটি JSON অবজেক্ট রয়েছে এবং আমরা JSON Patch ব্যবহার করে কিছু পরিবর্তন করতে চাই।
{
"name": "John Doe",
"age": 30,
"address": {
"street": "123 Main St",
"city": "Springfield"
}
}
[
{ "op": "replace", "path": "/age", "value": 31 },
{ "op": "add", "path": "/phone", "value": "123-456-7890" }
]
import org.json.JSONObject;
import org.json.JSONPatch;
import org.json.JSONPointer;
import org.json.JSONArray;
public class JSONPatchExample {
public static void main(String[] args) {
// মূল JSON অবজেক্ট তৈরি
JSONObject jsonObject = new JSONObject();
jsonObject.put("name", "John Doe");
jsonObject.put("age", 30);
JSONObject address = new JSONObject();
address.put("street", "123 Main St");
address.put("city", "Springfield");
jsonObject.put("address", address);
// JSON Patch তৈরি
String patchString = "[ { \"op\": \"replace\", \"path\": \"/age\", \"value\": 31 }, { \"op\": \"add\", \"path\": \"/phone\", \"value\": \"123-456-7890\" } ]";
JSONArray patchArray = new JSONArray(patchString);
// JSON Patch প্রয়োগ করা
JSONPatch patch = new JSONPatch(patchArray);
JSONObject patchedJson = patch.apply(jsonObject);
// পরিবর্তিত JSON অবজেক্ট প্রিন্ট করা
System.out.println(patchedJson.toString(4)); // Pretty print
}
}
replace
, add
, remove
) এবং নির্দিষ্ট পাথ অনুযায়ী JSON ডেটা পরিবর্তন করে।op
হল JSON Patch অপারেশন টাইপ। এটি হতে পারে add
, remove
, replace
, বা move
।path
হল সেই পাথ যেখানে পরিবর্তন প্রয়োগ হবে।value
হল নতুন মান, যা সংশ্লিষ্ট পাথের জন্য সেট করা হবে।Org.JSON লাইব্রেরি Java তে JSON Pointer এবং JSON Patch ব্যবহারের মাধ্যমে JSON ডেটা অ্যাক্সেস এবং আপডেট করার প্রক্রিয়াকে সহজ এবং দ্রুত করে তোলে। JSON Pointer ডেটা রিড করার জন্য এবং JSON Patch ডেটাতে পরিবর্তন করার জন্য অত্যন্ত কার্যকরী টুল হিসেবে কাজ করে।
JSON Pointer
একটি স্ট্যান্ডার্ড যা JSON ডেটা স্ট্রাকচারের মধ্যে একটি নির্দিষ্ট অংশ বা উপাদান শনাক্ত করতে ব্যবহৃত হয়। এটি একটি স্ট্রিং (String) যে স্ট্রিংটি JSON ডেটার মধ্যে একটি নির্দিষ্ট উপাদান বা মানের অবস্থান নির্দেশ করে। JSON Pointer প্রাথমিকভাবে JSON ডেটাতে নির্দিষ্ট উপাদান অনুসন্ধান করতে সাহায্য করে, যেমন JSON অবজেক্টের কীগুলোর মান অথবা অ্যারের নির্দিষ্ট আইটেম।
Org.JSON লাইব্রেরি JSONPointer
এর জন্য একটি সমর্থন প্রদান করে যা আপনাকে JSON ডেটা স্ট্রাকচারের মধ্যে নির্দিষ্ট মান বা উপাদান অ্যাক্সেস করতে সক্ষম করে।
JSON Pointer স্ট্রিংটির গঠন এমনভাবে হয় যে এটি JSON ডেটার মধ্যে একটি নির্দিষ্ট পাথ নির্দেশ করে। এটি /
দ্বারা পৃথক হওয়া অংশগুলো দিয়ে গঠিত হয়। উদাহরণস্বরূপ:
/name
: এখানে এটি JSON অবজেক্টের name
কীর মান নির্দেশ করছে।/address/city
: এখানে এটি নেস্টেড অবজেক্টের address
কীর ভেতরে city
কীর মান নির্দেশ করছে।Org.JSON লাইব্রেরি JSON Pointer এর মাধ্যমে JSON ডেটা স্ট্রাকচারের ভেতরে নির্দিষ্ট অংশ বা উপাদান খুঁজে বের করার সুবিধা দেয়। এটি সাধারণত JSON ডেটা এক্সট্র্যাক্ট করার জন্য ব্যবহার করা হয়।
ধরা যাক, আমাদের কাছে একটি JSON অবজেক্ট আছে এবং আমরা JSON Pointer ব্যবহার করে এর নির্দিষ্ট অংশ এক্সট্র্যাক্ট করতে চাই।
import org.json.JSONObject;
import org.json.JSONPointer;
public class JsonPointerExample {
public static void main(String[] args) {
// JSON অবজেক্ট তৈরি
String jsonString = "{ \"name\": \"John\", \"address\": { \"city\": \"New York\", \"zip\": \"10001\" } }";
JSONObject jsonObject = new JSONObject(jsonString);
// JSON Pointer তৈরি
JSONPointer pointer = new JSONPointer("/address/city");
// JSON Pointer দিয়ে ডেটা এক্সট্র্যাক্ট করা
String city = (String) pointer.queryFrom(jsonObject);
// আউটপুট
System.out.println("City: " + city);
}
}
JSONObject
অবজেক্ট তৈরি করা হয়েছে।/address/city
JSON Pointer ব্যবহার করে আমরা JSON ডেটার মধ্যে address
অবজেক্টের ভিতরে city
কীর মান অ্যাক্সেস করতে চেয়েছি।queryFrom()
মেথড: এই মেথডের মাধ্যমে JSON Pointer ব্যবহার করে নির্দিষ্ট পাথ থেকে ডেটা এক্সট্র্যাক্ট করা হয়েছে।এটি আউটপুট হিসেবে নিম্নলিখিত ফলাফল দিবে:
City: New York
/name
দিয়ে name
কীর মান পাওয়া যাবে।/address/city
দিয়ে address
অবজেক্টের ভেতরের city
মান পাওয়া যাবে।/employees/0/name
দিয়ে employees
অ্যারের প্রথম উপাদান থেকে name
এক্সট্র্যাক্ট করা যাবে।JSON Pointer একটি শক্তিশালী টুল যা JSON ডেটা স্ট্রাকচারের মধ্যে নির্দিষ্ট উপাদান বা মানকে দ্রুত এবং কার্যকরভাবে অ্যাক্সেস করতে সাহায্য করে। Org.JSON লাইব্রেরির মাধ্যমে Java প্রোগ্রামে JSON Pointer ব্যবহার করা সম্ভব। এটি JSON ডেটা পার্সিং এবং এক্সট্র্যাকশনের একটি সহজ ও সুবিধাজনক উপায় প্রদান করে, বিশেষত যখন JSON ডেটা গভীরভাবে নেস্টেড থাকে।
অর্গ.জেসন (Org.Json) লাইব্রেরি Java-তে JSON ডেটা ম্যানিপুলেশন এবং পরিবর্তন করার জন্য একটি শক্তিশালী টুল। JSON Patch একটি স্ট্যান্ডার্ড (RFC 6902) যা JSON ডেটাতে পার্টিয়াল পরিবর্তন (partial modification) করতে সাহায্য করে, অর্থাৎ আপনি JSON ডকুমেন্টের একটি নির্দিষ্ট অংশ পরিবর্তন, যুক্ত, বা মুছে ফেলতে পারেন।
JSON Patch ব্যবহার করে আপনি JSON ডেটার বিভিন্ন অংশে দ্রুত এবং কার্যকরীভাবে পরিবর্তন করতে পারেন। এটি একাধিক অপারেশন একসঙ্গে করতে সক্ষম, যেমন add
, remove
, replace
, এবং move
।
ধরা যাক, আমাদের কাছে একটি JSON অবজেক্ট রয়েছে এবং আমরা সেটির কিছু অংশে পরিবর্তন করতে চাই। JSON Patch এর সাহায্যে আমরা এই পরিবর্তনগুলি সম্পাদন করতে পারব।
import org.json.JSONArray;
import org.json.JSONObject;
import org.json.JSONPointer;
import org.json.JSONTokener;
import org.json.patch.Operation;
import org.json.patch.Patch;
import java.util.Arrays;
public class JsonPatchExample {
public static void main(String[] args) {
// JSON ডকুমেন্ট তৈরি করা
JSONObject originalJson = new JSONObject();
originalJson.put("name", "John Doe");
originalJson.put("age", 30);
originalJson.put("city", "New York");
JSONArray phoneNumbers = new JSONArray();
phoneNumbers.put("123-456-7890");
phoneNumbers.put("987-654-3210");
originalJson.put("phoneNumbers", phoneNumbers);
// JSON Patch তৈরি করা (add, replace, remove)
JSONArray patchOperations = new JSONArray();
// 'age' নামের কী এর মান পরিবর্তন করা
JSONObject replaceOperation = new JSONObject();
replaceOperation.put("op", "replace");
replaceOperation.put("path", "/age");
replaceOperation.put("value", 35);
patchOperations.put(replaceOperation);
// 'city' নামের কী মুছে ফেলা
JSONObject removeOperation = new JSONObject();
removeOperation.put("op", "remove");
removeOperation.put("path", "/city");
patchOperations.put(removeOperation);
// 'phoneNumbers' অ্যারেতে একটি নতুন ফোন নম্বর যোগ করা
JSONObject addOperation = new JSONObject();
addOperation.put("op", "add");
addOperation.put("path", "/phoneNumbers/1");
addOperation.put("value", "555-555-5555");
patchOperations.put(addOperation);
// JSON Patch তৈরি করা
Patch patch = Patch.fromJson(patchOperations);
// JSON ডকুমেন্টে প্যাচ প্রয়োগ করা
JSONObject modifiedJson = patch.apply(originalJson);
// পরিবর্তিত JSON ডকুমেন্ট প্রদর্শন করা
System.out.println("Modified JSON:");
System.out.println(modifiedJson.toString(4)); // Pretty print JSON with indentation
}
}
name
, age
, city
, এবং phoneNumbers
অন্তর্ভুক্ত রয়েছে।add
, replace
, remove
) রাখব।op
, path
, এবং value
নির্ধারণ করা হয়েছে।replace
অপারেশনটি একটি নির্দিষ্ট কী এর মান পরিবর্তন করে। এখানে আমরা age
এর মান 30
থেকে 35
করেছি।remove
অপারেশনটি একটি নির্দিষ্ট কী মুছে ফেলে। এখানে আমরা city
কী মুছে ফেলেছি।add
অপারেশনটি একটি নতুন মান বা কী যোগ করে। এখানে আমরা phoneNumbers
অ্যারেতে নতুন ফোন নম্বর 555-555-5555
যোগ করেছি।JSON Patch ডেটার মাধ্যমে আপনি একটি JSON অবজেক্টের নির্দিষ্ট অংশে পরিবর্তন করতে পারেন। এটি ডেটা স্ট্রাকচারের মধ্যে ছোট-বড় পরিবর্তন আনার জন্য বিশেষভাবে উপযোগী, যেমন বড় JSON ডকুমেন্টের মধ্যে ডেটা আপডেট করা।
JSON Patch ব্যবহার করে আপনি JSON ডেটাতে পার্টিয়াল পরিবর্তন করতে পারেন, যেমন নতুন মান যোগ করা, পুরানো মান পরিবর্তন করা, এবং কী মুছে ফেলা। এটি একটি শক্তিশালী পদ্ধতি JSON ডেটার ডাইনামিক ম্যানিপুলেশন করার জন্য, বিশেষত যখন ডেটা বড় বা জটিল হয় এবং তার কিছু অংশ পরিবর্তন প্রয়োজন হয়। JSON Patch অপারেশনগুলি যেমন add
, remove
, replace
, এবং move
ব্যবহৃত হয় JSON ডেটার নির্দিষ্ট অংশে পরিবর্তন আনার জন্য, এবং এটি অ্যাপ্লিকেশন বা API ডেভেলপমেন্টে খুবই কার্যকরী হতে পারে।
JSON Pointer এবং JSON Patch হল দুটি জনপ্রিয় প্রযুক্তি যা JSON ডেটা স্ট্রাকচারের মধ্যে নির্দিষ্ট ডেটা এক্সেস এবং আপডেট করার জন্য ব্যবহৃত হয়। org.json
লাইব্রেরির মধ্যে এই দুটি ফিচার উপলব্ধ রয়েছে যা JSON ডেটা ম্যানিপুলেশনকে আরও সহজ ও কার্যকরী করে।
JSON Pointer একটি স্ট্রিং প্রপার্টি যা JSON ডেটার মধ্যে নির্দিষ্ট পাথ বা কীগুলোর মাধ্যমে ডেটা এক্সেস করার জন্য ব্যবহৃত হয়। এটি মূলত একটি পাথ স্ট্রিং, যা JSON ডেটার মধ্যে এক বা একাধিক স্তরের মধ্যে থাকা মানে নির্দেশনা দেয়।
JSON Pointer স্ট্রিং সাধারণত /
দ্বারা পৃথক করা হয় এবং প্রতিটি অংশ একটি কী বা ইনডেক্স নির্দেশ করে। উদাহরণস্বরূপ, /a/b/c
JSON ডেটার মধ্যে a
কী, তার মধ্যে b
কী, এবং তারপর c
কী এর মানে নির্দেশ করবে।
import org.json.JSONObject;
import org.json.JSONPointer;
public class JSONPointerExample {
public static void main(String[] args) {
// একটি JSON অবজেক্ট তৈরি
JSONObject obj = new JSONObject();
obj.put("name", "John");
obj.put("age", 30);
// JSON Pointer দিয়ে নির্দিষ্ট মান এক্সেস করা
JSONPointer pointer = new JSONPointer("/name");
String name = (String) pointer.queryFrom(obj);
// পয়েন্টারের মাধ্যমে পাওয়া মান প্রিন্ট করা
System.out.println("Name: " + name);
}
}
Name: John
এখানে, JSON Pointer /name
ব্যবহার করে name
কীর মান John
এক্সেস করা হয়েছে।
JSON Patch হল একটি স্ট্যান্ডার্ড যা JSON ডেটার পরিবর্তন, আপডেট, মুছে ফেলা বা যোগ করার জন্য ব্যবহৃত হয়। এটি JSON ডেটাতে নির্দিষ্ট পরিবর্তনগুলো করতে একটি প্যাচ ফাইল বা পদ্ধতি ব্যবহার করে।
JSON Patch ফরম্যাট একটি অ্যারের মতো থাকে, যেখানে প্রতিটি অপারেশন একটি অবজেক্ট হিসেবে থাকে যা অপারেশন, পাথ এবং মান নির্ধারণ করে। যেমন add
, replace
, remove
, move
, ইত্যাদি অপারেশন গুলি JSON ডেটাতে পরিবর্তন করতে ব্যবহৃত হয়।
import org.json.JSONObject;
import org.json.JSONPatch;
public class JSONPatchExample {
public static void main(String[] args) {
// একটি JSON অবজেক্ট তৈরি
JSONObject obj = new JSONObject();
obj.put("name", "John");
obj.put("age", 30);
// JSON Patch তৈরি
JSONPatch patch = new JSONPatch();
// Patch এর মাধ্যমে age ফিল্ড আপডেট করা
patch.add("/age", 35); // 35 দিয়ে বয়স আপডেট করা
patch.remove("/name"); // name কীর মান মুছে ফেলা
// Patch প্রয়োগ করা
patch.apply(obj);
// আপডেট হওয়া JSON অবজেক্ট প্রিন্ট করা
System.out.println(obj.toString());
}
}
{
"age": 35
}
এখানে, JSON Patch ব্যবহার করে name
কীর মান মুছে ফেলা হয়েছে এবং age
কীর মান 30
থেকে 35
করা হয়েছে।
JSON Patch ফরম্যাটের বিভিন্ন অপারেশনগুলি নিচে ব্যাখ্যা করা হলো:
import org.json.JSONObject;
import org.json.JSONPatch;
public class JSONPatchOperationsExample {
public static void main(String[] args) {
// একটি JSON অবজেক্ট তৈরি
JSONObject obj = new JSONObject();
obj.put("name", "John");
obj.put("age", 30);
// JSON Patch তৈরি
JSONPatch patch = new JSONPatch();
// JSON Patch এর অপারেশন যোগ করা
patch.add("/address", "123 Street, NY"); // নতুন address যোগ করা
patch.replace("/age", 31); // age আপডেট করা
patch.remove("/name"); // name মুছে ফেলা
// Patch প্রয়োগ করা
patch.apply(obj);
// আপডেট হওয়া JSON অবজেক্ট প্রিন্ট করা
System.out.println(obj.toString());
}
}
{
"age": 31,
"address": "123 Street, NY"
}
এখানে name
মুছে ফেলা হয়েছে, age
পরিবর্তিত হয়েছে, এবং একটি নতুন address
কীর মান যোগ করা হয়েছে।
org.json
লাইব্রেরিতে এই দুটি ফিচার ব্যবহার করে JSON ডেটার মধ্যে দ্রুত এবং কার্যকরীভাবে পরিবর্তন এবং এক্সেস করা সম্ভব।
Read more