इस ट्यूटोरियल में हम देखेंगे कि विभिन्न लाइब्रेरी का उपयोग करके Java में JSON कैसे पार्स करें।
JSON का मतलब JavaScript Object Notation है, और यह JavaScript के सबसेट पर आधारित है।
डेटा-एक्सचेंज फॉर्मेट के रूप में, यह वेब प्रोग्रामिंग में व्यापक रूप से उपयोग किया जाता है। यहां हम दिखाते हैं कि org.json लाइब्रेरी का उपयोग करके Java में JSON कैसे पार्स करें।
एक JSON ऑब्जेक्ट key/value पेयर्स का एक अनऑर्डर्ड सेट है। एक JSON Array मानों का एक ऑर्डर्ड कलेक्शन है। मान स्वयं ऑब्जेक्ट या Arrays हो सकते हैं।
हम pageName, pagePic और post_id के मान प्राप्त करने के लिए इस JSON को उदाहरण के रूप में पार्स करेंगे
{
"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 पार्स करें
Java में 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);
}
}
}
नोट: उपरोक्त कोड में ... को JSON स्ट्रिंग से बदलने की आवश्यकता है। स्पष्टता के लिए इसे ऊपर दिए गए कोड से हटा दिया गया है।
सबसे पहले, हमें JSON स्ट्रिंग को JSONObject क्लास का उपयोग करके JSON ऑब्जेक्ट में बदलना होगा।
यह भी ध्यान दें कि "pageInfo" एक JSON ऑब्जेक्ट है, इसलिए हम getJSONObject मेथड का उपयोग करते हैं।
इसी तरह, "posts" एक JSON Array है, इसलिए हमें getJSONArray मेथड का उपयोग करने की आवश्यकता है।
- Java Object को JSON में कैसे बदलें
- Java Map को JSON में कैसे बदलें
- JSON को एन्कोड और डिकोड कैसे करें
Gson का उपयोग करके JSON पार्स करें
Java में 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 को Java ऑब्जेक्ट में पूरी तरह से डिसीरियलाइज़ करने की आवश्यकता होती है। एक अन्य विकल्प, जो इस रास्ते पर नहीं जाता है, वह है 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);
}
}
}