এই টিউটোরিয়ালে আমরা দেখব কিভাবে বিভিন্ন লাইব্রেরি ব্যবহার করে জাভাতে JSON পার্স করা যায়।
JSON মানে জাভাস্ক্রিপ্ট অবজেক্ট নোটেশন, এবং এটি জাভাস্ক্রিপ্টের একটি উপসেটের উপর ভিত্তি করে।
একটি ডেটা-বিনিময় বিন্যাস হিসাবে, এটি ওয়েব প্রোগ্রামিংয়ে ব্যাপকভাবে ব্যবহৃত হয়। এখানে আমরা org.json
ব্যবহার করে জাভাতে JSON পার্স করতে দেখাই লাইব্রেরি।
একটি JSON অবজেক্ট হল কী/মান জোড়ার একটি ক্রমবিহীন সেট। একটি JSON অ্যারে মানগুলির একটি অর্ডারকৃত সংগ্রহ। মানগুলি নিজেই বস্তু বা অ্যারে হতে পারে।
pageName
-এর মান পুনরুদ্ধার করার জন্য আমরা এই JSONটিকে উদাহরণ হিসেবে পার্স করব , pagePic
এবং post_id
{
"pageInfo": {
"pageName": "Homepage",
"logo": "https://www.example.com/logo.jpg"
},
"posts": [
{
"post_id": "0123456789",
"actor_id": "1001",
"author_name": "Jane Doe",
"post_title": "How to parse JSON in Java",
"comments": [],
"time_of_post": "1234567890"
}
]
}
org.json ব্যবহার করে JSON পার্স করুন
জাভাতে JSON পার্স করতে org.json ব্যবহার করতে, আপনাকে নির্ভরতা হিসাবে লাইব্রেরি যোগ করতে হবে। এটি Maven সংগ্রহস্থল থেকে আনা যেতে পারে
import org.json.JSONArray;
import org.json.JSONObject;
public class ParseJSON {
static String json = "...";
public static void main(String[] args) {
JSONObject obj = new JSONObject(json);
String pageName = obj.getJSONObject("pageInfo").getString("pageName");
System.out.println(pageName);
JSONArray arr = obj.getJSONArray("posts");
for (int i = 0; i < arr.length(); i++) {
String post_id = arr.getJSONObject(i).getString("post_id");
System.out.println(post_id);
}
}
}
N.B. ...
JSON স্ট্রিং দ্বারা প্রতিস্থাপিত করা প্রয়োজন। স্পষ্টতার জন্য উপরের কোড থেকে এটি বাদ দেওয়া হয়েছে।
প্রথমে, JSONObject ক্লাস ব্যবহার করে আমাদের JSON স্ট্রিংকে JSON অবজেক্টে রূপান্তর করতে হবে।
এছাড়াও, মনে রাখবেন যে "pageInfo" একটি JSON অবজেক্ট, তাই আমরা getJSONObject পদ্ধতি ব্যবহার করি।
একইভাবে, "পোস্ট" হল একটি JSON অ্যারে, তাই আমাদের getJSONArray পদ্ধতি ব্যবহার করতে হবে।
সম্পর্কিত:
- কিভাবে জাভা অবজেক্টকে JSON এ রূপান্তর করা যায়
- কিভাবে জাভা ম্যাপকে JSON-এ রূপান্তর করবেন
- কিভাবে JSON এনকোড এবং ডিকোড করবেন
Gson ব্যবহার করে JSON পার্স করুন
জাভাতে JSON পার্স করার জন্য Gson ব্যবহার করার জন্য, আপনাকে নির্ভরতা হিসাবে লাইব্রেরি যোগ করতে হবে। আপনি Maven সংগ্রহস্থল থেকে সর্বশেষ সংস্করণ পেতে পারেন
নিচের উদাহরণটি দেখায় কিভাবে উপরের JSON কে Gson এর সাথে পার্স করতে হয়।
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
public class ParseJSON {
static String json = "...";
public static void main(String[] args) {
JsonObject jsonObject = new JsonParser().parse(json).getAsJsonObject();
String pageName = jsonObject.getAsJsonObject("pageInfo").get("pageName").getAsString();
System.out.println(pageName);
JsonArray arr = jsonObject.getAsJsonArray("posts");
for (int i = 0; i < arr.size(); i++) {
String post_id = arr.get(i).getAsJsonObject().get("post_id").getAsString();
System.out.println(post_id);
}
}
}
আগের উদাহরণের মতো, ...
JSON স্ট্রিং দ্বারা প্রতিস্থাপন করা প্রয়োজন।
JsonPATH ব্যবহার করে JSON পার্স করুন
উপরের দুটি উদাহরণের জন্য সুদের সম্পত্তির মান অ্যাক্সেস করার আগে একটি জাভা অবজেক্টে JSON-এর সম্পূর্ণ ডিসিরিয়ালাইজেশন প্রয়োজন। আরেকটি বিকল্প, যা এই রুটে যায় না তা হল JsonPATH ব্যবহার করা যা JSON-এর জন্য XPath-এর মতো এবং JSON অবজেক্টগুলিকে অতিক্রম করার অনুমতি দেয়।
আগের মতো, আপনাকে নির্ভরতা হিসাবে JsonPATH যোগ করতে হবে, যা Maven সংগ্রহস্থল থেকে আনা যেতে পারে
উদাহরণস্বরূপ, উপরের JSON পার্স করতে আমরা ব্যবহার করতে পারি:
import com.jayway.jsonpath.JsonPath;
public class ParseJSON {
static String json = "...";
public static void main(String[] args) {
String pageName = JsonPath.read(json, "$.pageInfo.pageName");
System.out.println(pageName);
Integer posts = JsonPath.read(json, "$.posts.length()");
for(int i=0; i < posts; i++) {
String post_id = JsonPath.read(json, "$.posts[" + i + "].post_id");
System.out.println(post_id);
}
}
}