org.json - त्वरित गाइड

org.json or JSON-JavaJSON के लिए एक सरल जावा आधारित टूलकिट है। आप JSON डेटा को एन्कोड या डिकोड करने के लिए org.json का उपयोग कर सकते हैं।

विशेषताएं

  • Specification Compliant - JSON.simple JSON स्पेसिफिकेशन - RFC4627 के साथ पूरी तरह से अनुरूप है।

  • Lightweight - इसमें बहुत कम वर्ग होते हैं और एनकोड / डिकोड और भागने वाले जैसन जैसी आवश्यक कार्यक्षमताओं को प्रदान करता है।

  • XML Conversion - यह JSON से XML और इसके विपरीत रूपांतरण क्षमता प्रदान करता है।

  • HTTP Headers - JSON के HTTP हेडर रूपांतरण का समर्थन करता है और इसके विपरीत।

  • Cookie - JSON और इसके विपरीत कुकी रूपांतरण के लिए समर्थन प्रदान करता है।

  • CDL - JSON और इसके विपरीत अल्पविराम से अलग सूची में बदलने के लिए समर्थन प्रदान करता है।

  • No dependency- कोई बाहरी पुस्तकालय निर्भरता नहीं। स्वतंत्र रूप से शामिल किया जा सकता है।

  • Java 1.6-1.8 compatible - सोर्स कोड और बाइनरी जावा 1.6-1.8 संगत हैं

स्थानीय पर्यावरण सेटअप

JSON.simple जावा के लिए एक लाइब्रेरी है, इसलिए बहुत पहली आवश्यकता है कि आपकी मशीन में JDK स्थापित हो।

व्यवस्था की आवश्यकता

JDK 1.5 या ऊपर।
याद कोई न्यूनतम आवश्यकता नहीं।
डिस्क में जगह कोई न्यूनतम आवश्यकता नहीं।
ऑपरेटिंग सिस्टम कोई न्यूनतम आवश्यकता नहीं।

चरण 1: अपनी मशीन में जावा इंस्टॉलेशन को सत्यापित करें

सबसे पहले, कंसोल खोलें और आप जिस ऑपरेटिंग सिस्टम पर काम कर रहे हैं, उसके आधार पर एक जावा कमांड निष्पादित करें।

ओएस टास्क आदेश
खिड़कियाँ ओपन कमांड कंसोल c: \> java -version
लिनक्स कमांड टर्मिनल खोलें $ जावा-विचलन
मैक टर्मिनल खोलें मशीन: <joseph $ java -version

आइए सभी ऑपरेटिंग सिस्टम के लिए आउटपुट को सत्यापित करें -

ओएस उत्पादन
खिड़कियाँ

जावा संस्करण "1.8.0_101"

जावा (TM) एसई रनटाइम एनवायरनमेंट (बिल्ड 1.8.0_101)

लिनक्स

जावा संस्करण "1.8.0_101"

जावा (TM) एसई रनटाइम एनवायरनमेंट (बिल्ड 1.8.0_101)

मैक

जावा संस्करण "1.8.0_101"

जावा (TM) एसई रनटाइम एनवायरनमेंट (बिल्ड 1.8.0_101)

यदि आपके पास अपने सिस्टम पर जावा इंस्टॉल नहीं है, तो निम्न लिंक www.oracle.com से जावा सॉफ्टवेयर डेवलपमेंट किट (एसडीके) डाउनलोड करें । हम इस ट्यूटोरियल के लिए जावा 1.8.0_101 को स्थापित संस्करण मान रहे हैं।

चरण 2: जावा पर्यावरण सेट करें

ठीक JAVA_HOMEवातावरण चर आधार निर्देशिका स्थान पर इंगित करने के लिए जहां जावा आपकी मशीन पर स्थापित है। उदाहरण के लिए।

ओएस उत्पादन
खिड़कियाँ पर्यावरण चर JAVA_HOME को C: \ Program Files \ Java \ jdk1.8.0_101 पर सेट करें
लिनक्स निर्यात JAVA_HOME = / usr / स्थानीय / जावा-वर्तमान
मैक निर्यात JAVA_HOME = / लाइब्रेरी / जावा / होम

सिस्टम पथ में जावा कंपाइलर स्थान को जोड़ें।

ओएस उत्पादन
खिड़कियाँ तार लगाओ C:\Program Files\Java\jdk1.8.0_101\bin सिस्टम चर के अंत में, Path
लिनक्स निर्यात पथ = $ पथ: $ जाव_होम / बिन /
मैक आवश्यक नहीं

कमांड का उपयोग करके जावा इंस्टॉलेशन को सत्यापित करें java -version जैसा कि ऊपर बताया गया है।

चरण 3: org.json पुरालेख डाउनलोड करें

Org.json @ MVNRepository से org.json jar फ़ाइल का नवीनतम संस्करण डाउनलोड करें । इस ट्यूटोरियल को लिखने के समय, हमने json-20180813 डाउनलोड किया है, और इसे C: \> JSON फ़ोल्डर में कॉपी किया है।

ओएस संग्रह का नाम
खिड़कियाँ json-20180813.jar
लिनक्स json-20180813.jar
मैक json-20180813.jar

चरण 4: सेट करें JSON_JAVA पर्यावरण

ठीक JSON_JAVAपर्यावरण चर को आधार निर्देशिका स्थान पर इंगित करने के लिए जहां org.json जार आपकी मशीन पर संग्रहीत है। मान लेते हैं कि हमने JSON-20180813.jar को JSON फ़ोल्डर में संग्रहीत किया है।

अनु क्रमांक ओएस और विवरण
1

Windows

पर्यावरण चर JSON_JAVA को C: \ JSON पर सेट करें

2

Linux

निर्यात JSON_JAVA = / usr / स्थानीय / JSON

3

Mac

निर्यात JSON_JAVA = / लाइब्रेरी / JSON

चरण 5: CLASSPATH चर सेट करें

ठीक CLASSPATH पर्यावरण चर JSON.simple जार स्थान को इंगित करने के लिए।

अनु क्रमांक ओएस और विवरण
1

Windows

वातावरण चर CLASSPATH को% CLASSPATH%;% JSON_JAVA% \ json-20180813.jar; पर सेट करें।

2

Linux

निर्यात CLASSPATH = $ CLASSPATH: $ JSON_JAVA / json-20180813.jar:।

3

Mac

निर्यात CLASSPATH = $ CLASSPATH: $ JSON_JAVA / json-20180813.jar:।

CDL वर्ग कॉमा सीमांकित पाठ को JSONArray में बदलने के लिए और इसके विपरीत में स्थिर तरीके प्रदान करता है।

निम्नलिखित विधियाँ उदाहरण में दी गई हैं।

  • rowToJSONArray(String) - JSONArray ऑब्जेक्ट को एक अल्पविराम सीमांकित पाठ में कनवर्ट करता है।

  • rowToString(JSONArray) - एक JSONArray को कॉमा सीमांकित पाठ में परिवर्तित करता है।

  • toJSONArray(String) - JSONArray ऑब्जेक्ट्स के ऑब्जेक्ट के लिए एक बहु-लाइन अल्पविराम सीमांकित पाठ में कनवर्ट करता है।

  • toJSONArray(JSONArray, String) - JSONArray ऑब्जेक्ट को सम्मिलित करता है और JSONArray ऑब्जेक्ट को कॉमा सीमांकित पाठ।

उदाहरण

import org.json.CDL;
import org.json.JSONArray;
import org.json.JSONTokener;

public class JSONDemo {
   public static void main(String[] args) {
      String csvData = "INDIA, UK, USA";

      //Case 1: CSV to JSON Array 
      JSONArray jsonArray = CDL.rowToJSONArray(new JSONTokener(csvData));        
      System.out.println(jsonArray);

      //Case 2: JSONArray to CSV        
      System.out.println(CDL.rowToString(jsonArray));

      //Case 3: CSV to JSONArray of Objects
      csvData = "empId, name, age \n" +
         "1, Mark, 22 \n" +
         "2, Robert, 35 \n" +
         "3, Julia, 18";
      System.out.println(CDL.toJSONArray(csvData));

      //Case 4: CSV without header        
      jsonArray = new JSONArray();
      jsonArray.put("empId");
      jsonArray.put("name");
      jsonArray.put("age");
      csvData = "1, Mark, 22 \n" + "2, Robert, 35 \n" + "3, Julia, 18";
      System.out.println(CDL.toJSONArray(jsonArray,csvData));
   }
}

उत्पादन

["INDIA","UK","USA"]
INDIA,UK,USA

[{"name":"Mark","empId":"1","age":"22"},
   {"name":"Robert","empId":"2","age":"35"},
   {"name":"Julia","empId":"3","age":"18"}]
[{"name":"Mark","empId":"1","age":"22"},
   {"name":"Robert","empId":"2","age":"35"},
   {"name":"Julia","empId":"3","age":"18"}]

कुकी वर्ग वेब ब्राउजर के कुकी पाठ को JSONObject में बदलने के लिए और इसके विपरीत में स्थिर तरीके प्रदान करता है।

निम्नलिखित विधियाँ उदाहरण में दी गई हैं।

  • toJSONObject(String) - JSONObject ऑब्जेक्ट के लिए एक कुकी पाठ परिवर्तित करता है।

  • toString(JSONObject) - कुकी पाठ के लिए एक JSONObject प्रदान करता है।

उदाहरण

import org.json.Cookie;
import org.json.JSONObject;

public class JSONDemo {
   public static void main(String[] args) {
      String cookie = "username = Mark Den; expires = Thu, 15 Jun 2020 12:00:00 UTC; path = /";

      //Case 1: Converts Cookie String to JSONObject
      JSONObject jsonObject = Cookie.toJSONObject(cookie);
      System.out.println(jsonObject);

      //Case 2: Converts JSONObject to Cookie String
      System.out.println(Cookie.toString(jsonObject));        
   }
}

उत्पादन

{"path":"/","expires":"Thu, 15 Jun 2020 12:00:00 UTC","name":"username","value":"Mark Den"}
username=Mark Den;expires=Thu, 15 Jun 2020 12:00:00 UTC;path=/

कुकी सूची क्लास कुकीज सूची को JSONObject में बदलने के लिए और इसके विपरीत स्थिर तरीके प्रदान करती है। कुकी सूची नाम / मूल्य जोड़े का एक क्रम है।

निम्नलिखित विधियाँ उदाहरण में दी गई हैं।

  • toJSONObject(String) - JSONObject ऑब्जेक्ट के लिए एक कुकी सूची पाठ में कनवर्ट करता है।

  • toString(JSONObject) - JSONObject को कुकी सूची पाठ में रूपांतरित करता है।

उदाहरण

import org.json.Cookie;
import org.json.CookieList;
import org.json.JSONObject;

public class JSONDemo {
   public static void main(String[] args) {
      String cookie = "username = Mark Den; expires = Thu, 15 Jun 2020 12:00:00 UTC; path = /";

      //Case 1: Converts Cookie String to JSONObject
      JSONObject cookieJSONObject = Cookie.toJSONObject(cookie);

      JSONObject cookielistJSONObject = new JSONObject();       
      cookielistJSONObject.put(cookieJSONObject.getString("name"), 
         cookieJSONObject.getString("value"));       

      String cookieList = CookieList.toString(cookielistJSONObject);        
      System.out.println(cookieList); 
      System.out.println(CookieList.toJSONObject(cookieList));
   }
}

उत्पादन

username=Mark Den
{"username":"Mark Den"}

HTTP क्लास वेब ब्राउजर के हेडर टेक्स्ट को JSONObject में बदलने के लिए स्टैटिक तरीके प्रदान करता है, और इसके विपरीत।

निम्नलिखित विधियाँ उदाहरण में दी गई हैं।

  • toJSONObject(String) - JSONObject ऑब्जेक्ट पर एक हेडर टेक्स्ट को कनवर्ट करता है।

  • toString(JSONObject) - हेडर पाठ के लिए एक JSONObject को रूपांतरित करता है।

उदाहरण

import org.json.HTTP;
import org.json.JSONObject;

public class JSONDemo {
   public static void main(String[] args) { 
      JSONObject jsonObject = new JSONObject();
      jsonObject.put("Method", "POST");
      jsonObject.put("Request-URI", "http://www.tutorialspoint.com/");
      jsonObject.put("HTTP-Version", "HTTP/1.1");
        
      //Case 1: Converts JSONObject of Header to String
      String headerText = HTTP.toString(jsonObject);
      System.out.println(headerText); 
        
      headerText = "POST \"http://www.tutorialspoint.com/\" HTTP/1.1";
      //Case 2: Converts Header String to JSONObject
      System.out.println(HTTP.toJSONObject(headerText));
   }
}

उत्पादन

POST "http://www.tutorialspoint.com/" HTTP/1.1

{"Request-URI":"http://www.tutorialspoint.com/","Method":"POST","HTTP-Version":"HTTP/1.1"}

एक JSONArray मूल्यों का एक क्रमबद्ध क्रम है। यह सूचकांक द्वारा मूल्यों तक पहुंचने और मूल्यों को रखने के लिए तरीके प्रदान करता है। निम्नलिखित प्रकार समर्थित हैं -

  • Boolean

  • JSONArray

  • JSONObject

  • Number

  • String

  • JSONObject.NULL ऑब्जेक्ट

उदाहरण

import org.json.JSONArray;
import org.json.JSONObject;

public class JSONDemo {
   public static void main(String[] args) { 
      JSONArray list = new JSONArray();

      list.put("foo");
      list.put(new Integer(100));
      list.put(new Double(1000.21));
      list.put(new Boolean(true));
      list.put(JSONObject.NULL);

      System.out.println("JSONArray: ");
      System.out.println(list);
   }
}

उत्पादन

JSONArray: 
["foo",100,1000.21,true,null]

JSONML वर्ग XML पाठ को JSONArray में बदलने के लिए और इसके विपरीत स्थिर तरीके प्रदान करता है।

निम्नलिखित विधियाँ उदाहरण में दी गई हैं।

  • toJSONArray(String) - एक XML को JSONArray ऑब्जेक्ट में कनवर्ट करता है।

  • toJSONObject(String) - एक XML को JSONObject ऑब्जेक्ट में कनवर्ट करता है।

  • toString(JSONArray) - एक JSONArray ऑब्जेक्ट से एक XML देता है।

  • toString(JSONObject) - एक JSONObject ऑब्जेक्ट से एक XML देता है।

उदाहरण

import org.json.JSONArray;
import org.json.JSONML;
import org.json.JSONObject;

public class JSONDemo {
   public static void main(String[] args) {
      JSONArray list = new JSONArray();
      list.put("name");
      list.put("Robert");     

      System.out.println("XML from a JSONArray: ");
      String xml = JSONML.toString(list);
      System.out.println(xml);

      System.out.println("JSONArray from a XML: ");
      list = JSONML.toJSONArray(xml);
      System.out.println(list);

      System.out.println("JSONObject from a XML: ");
      JSONObject object = JSONML.toJSONObject(xml);
      System.out.println(object);

      System.out.println("XML from a JSONObject: ");
      xml = JSONML.toString(object);
      System.out.println(xml);
   }
}

उत्पादन

XML from a JSONArray: 
<name>Robert</name>
JSONArray from a XML: 
["name","Robert"]
JSONObject from a XML: 
{"childNodes":["Robert"],"tagName":"name"}
XML from a JSONObject: 
<name>Robert</name>

JSONObject क्लास कुंजी-मूल्य जोड़े का एक अनियोजित संग्रह है। यह कुंजी द्वारा मूल्यों तक पहुंचने और मूल्यों को रखने के लिए तरीके प्रदान करता है। निम्नलिखित प्रकार समर्थित हैं -

  • Boolean

  • JSONArray

  • JSONObject

  • Number

  • String

  • JSONObject.NULL ऑब्जेक्ट

उदाहरण

import org.json.JSONArray;
import org.json.JSONObject;

public class JSONDemo {
   public static void main(String[] args) { 
      JSONObject jsonObject = new JSONObject();
      jsonObject.put("Name", "Robert");
      jsonObject.put("ID", 1);
      jsonObject.put("Fees", new Double(1000.21));
      jsonObject.put("Active", new Boolean(true));
      jsonObject.put("Other Details", JSONObject.NULL);

      JSONArray list = new JSONArray();
      list.put("foo");
      list.put(new Integer(100));
      jsonObject.put("list",list);
      System.out.println(jsonObject);
   }
}

उत्पादन

{"Active":true,"Other Details":null,"ID":1,"Fees":1000.21,"list":["foo",100],"Name":"Robert"}

JSONStringer JSON पाठ को जल्दी से बनाने के लिए एक उपयोगिता वर्ग है जो JSON सिंटैक्स नियमों की पुष्टि करता है। JSONStringer का प्रत्येक उदाहरण एक JSON टेक्स्ट का उत्पादन कर सकता है।

उदाहरण

import org.json.JSONStringer;

public class JSONDemo {
   public static void main(String[] args) { 
      String jsonText = new JSONStringer()
         .object()
         .key("Name")
         .value("Robert")                            
         .endObject()                       
         .toString();
      System.out.println(jsonText);

      jsonText = new JSONStringer()
         .array()
         .value("Robert")      
         .value("Julia")      
         .value("Dan")
         .endArray()                       
         .toString();
      System.out.println(jsonText);

      jsonText = new JSONStringer()
         .array()
         .value("Robert")      
         .value("Julia")      
         .value("Dan")
         .object()
         .key("Name")
         .value("Robert")                            
         .endObject()  
         .endArray()             
         .toString();
      System.out.println(jsonText);
   }
}

उत्पादन

{"Name":"Robert"}
["Robert","Julia","Dan"]
["Robert","Julia","Dan",{"Name":"Robert"}]

प्रॉपर्टी क्लास संपत्तियों के पाठ को JSONObject में बदलने के लिए और इसके विपरीत में स्थिर तरीके प्रदान करता है।

निम्नलिखित विधियाँ उदाहरण में दी गई हैं।

  • toJSONObject(Properties) - एक गुण डेटा को JSONObject ऑब्जेक्ट में कनवर्ट करता है।

  • toProperties(JSONObject) - गुण ऑब्जेक्ट के लिए एक JSONObject परिवर्तित करता है।

उदाहरण

import java.util.Properties;
import org.json.JSONObject;
import org.json.Property;

public class JSONDemo {
   public static void main(String[] args) {
      Properties properties = new Properties();
      properties.put("title", "This is a title text");
      properties.put("subtitle", "This is a subtitle text");

      System.out.println("Properties to JSON");
      JSONObject jsonObject = Property.toJSONObject(properties);
      System.out.println(jsonObject);

      System.out.println("JSON to properties");
      System.out.println(Property.toProperties(jsonObject));
   }
}

उत्पादन

Properties to JSON
{"subtitle":"This is a subtitle text","title":"This is a title text"}
JSON to properties
{subtitle = This is a subtitle text, title = This is a title text}

XML क्लास एक XML टेक्स्ट को JSONObject में बदलने के लिए और इसके विपरीत स्टैटिक तरीके प्रदान करता है।

निम्नलिखित विधियाँ उदाहरण में दी गई हैं।

  • toJSONObject(String) - एक XML को JSONArray ऑब्जेक्ट में कनवर्ट करता है।

  • toString(JSONObject) - एक JSONObject ऑब्जेक्ट से एक XML देता है।

उदाहरण

import org.json.JSONObject;
import org.json.XML;

public class JSONDemo {
   public static void main(String[] args) { 
      JSONObject jsonObject = new JSONObject();
      jsonObject.put("Name", "Robert");
      jsonObject.put("ID", 1);
      jsonObject.put("Fees", new Double(1000.21));
      jsonObject.put("Active", new Boolean(true));
      jsonObject.put("Details", JSONObject.NULL);

      //Convert a JSONObject to XML
      String xmlText = XML.toString(jsonObject);
      System.out.println(xmlText);

      //Convert an XML to JSONObject
      System.out.println(XML.toJSONObject(xmlText));
   }
}

उत्पादन

<Active>true</Active><Details>null</Details><ID>1</ID><Fees>1000.21</Fees><Name>Robert</Name>
{"Active":true,"Details":null,"ID":1,"Fees":1000.21,"Name":"Robert"}

Org.json की उपयोगिता कक्षाएं अमान्य JSON के मामले में JSONException को फेंकती हैं। निम्नलिखित उदाहरण से पता चलता है कि JSONException को कैसे संभालना है।

उदाहरण

import org.json.JSONException;
import org.json.XML;

public class JSONDemo {
   public static void main(String[] args) {
      try{
         //XML tag name should not have space.
         String xmlText = "<Other Details>null</Other Details>";
         System.out.println(xmlText);

         //Convert an XML to JSONObject
         System.out.println(XML.toJSONObject(xmlText));
      } catch(JSONException e){   
         System.out.println(e.getMessage());
      }
   }
}

उत्पादन

position: 24
Unexpected token RIGHT BRACE(}) at position 24.