org.json - Hızlı Kılavuz
org.json or JSON-JavaJSON için Java tabanlı basit bir araç setidir. JSON verilerini kodlamak veya kodunu çözmek için org.json'u kullanabilirsiniz.
Özellikleri
- Specification Compliant - JSON.simple, JSON Spesifikasyonu - RFC4627 ile tamamen uyumludur. 
- Lightweight - Çok az sınıfı vardır ve kodlama / kod çözme ve json'dan kaçış gibi gerekli işlevleri sağlar. 
- XML Conversion - JSON'dan XML'e ve tersi yönde dönüştürme yeteneği sağlar. 
- HTTP Headers - JSON'a HTTP Üstbilgisi dönüşümünü ve bunun tersini destekler. 
- Cookie - JSON'a ve tam tersine Çerez dönüşümü için destek sağlar. 
- CDL - Virgülle ayrılmış listeyi JSON'a ve tersi yönde dönüştürmek için destek sağlar. 
- No dependency- Harici kitaplık bağımlılığı yok. Bağımsız olarak dahil edilebilir. 
- Java 1.6-1.8 compatible - Kaynak kodu ve ikili Java 1.6-1.8 uyumludur 
Yerel Ortam Kurulumu
JSON.simple, Java için bir kitaplıktır, bu nedenle ilk gereksinim, makinenize JDK'nın yüklenmiş olmasıdır.
Sistem gereksinimleri
| JDK | 1.5 veya üstü. | 
|---|---|
| Hafıza | Minimum gereklilik yok. | 
| Disk alanı | Minimum gereklilik yok. | 
| İşletim sistemi | Minimum gereklilik yok. | 
Adım 1: Makinenizde Java Kurulumunu Doğrulayın
Öncelikle konsolu açın ve üzerinde çalıştığınız işletim sistemine göre bir java komutu yürütün.
| işletim sistemi | Görev | Komut | 
|---|---|---|
| pencereler | Komut Konsolunu Aç | c: \> java sürümü | 
| Linux | Komut Terminalini Aç | $ java sürümü | 
| Mac | Açık Terminal | machine: <joseph $ java -version | 
Tüm işletim sistemleri için çıktıyı doğrulayalım -
| işletim sistemi | Çıktı | 
|---|---|
| pencereler | java sürümü "1.8.0_101" Java (TM) SE Çalışma Zamanı Ortamı (derleme 1.8.0_101) | 
| Linux | java sürümü "1.8.0_101" Java (TM) SE Çalışma Zamanı Ortamı (derleme 1.8.0_101) | 
| Mac | java sürümü "1.8.0_101" Java (TM) SE Çalışma Zamanı Ortamı (derleme 1.8.0_101) | 
Sisteminizde Java kurulu değilse, Java Yazılım Geliştirme Kitini (SDK) aşağıdaki www.oracle.com bağlantısından indirin . Bu öğretici için Java 1.8.0_101 sürümünü yüklü sürüm olarak kabul ediyoruz.
Adım 2: JAVA Ortamını Ayarlayın
Yı kur JAVA_HOMEJava'nın makinenizde kurulu olduğu temel dizin konumunu gösteren ortam değişkeni. Örneğin.
| işletim sistemi | Çıktı | 
|---|---|
| pencereler | JAVA_HOME ortam değişkenini C: \ Program Files \ Java \ jdk1.8.0_101 olarak ayarlayın | 
| Linux | dışa aktar JAVA_HOME = / usr / local / java-current | 
| Mac | dışa aktar JAVA_HOME = / Kitaplık / Java / Ana Sayfa | 
Java derleyici konumunu Sistem Yoluna ekleyin.
| işletim sistemi | Çıktı | 
|---|---|
| pencereler | Dizeyi ekleyin C:\Program Files\Java\jdk1.8.0_101\bin sistem değişkeninin sonunda, Path. | 
| Linux | dışa aktar PATH = $ PATH: $ JAVA_HOME / bin / | 
| Mac | gerekli değil | 
Komutu kullanarak Java kurulumunu doğrulayın java -version yukarıda açıklandığı gibi.
3. Adım: org.json Arşivini indirin
Org.json jar dosyasının en son sürümünü org.json @ MVNRepository adresinden indirin . Bu öğreticiyi yazarken, json-20180813'ü indirdik ve C: \> JSON klasörüne kopyaladık.
| işletim sistemi | Arşiv adı | 
|---|---|
| pencereler | json-20180813.jar | 
| Linux | json-20180813.jar | 
| Mac | json-20180813.jar | 
Adım 4: JSON_JAVA Ortamını Ayarlayın
Yı kur JSON_JAVAorg.json jar dosyasının makinenizde depolandığı temel dizin konumunu gösteren ortam değişkeni. JSON klasöründe json-20180813.jar dosyasını sakladığımızı varsayalım.
| Sr.No | İşletim Sistemi ve Açıklama | 
|---|---|
| 1 | Windows JSON_JAVA ortam değişkenini C: \ JSON olarak ayarlayın | 
| 2 | Linux JSON_JAVA = / usr / local / JSON dışa aktar | 
| 3 | Mac JSON_JAVA = / Kitaplık / JSON dışa aktar | 
Adım 5: CLASSPATH Değişkenini Ayarlayın
Yı kur CLASSPATH JSON.simple jar konumuna işaret edecek ortam değişkeni.
| Sr.No | İşletim Sistemi ve Açıklama | 
|---|---|
| 1 | Windows Ortam değişkenini CLASSPATH olarak% CLASSPATH%;% JSON_JAVA% \ json-20180813.jar; | 
| 2 | Linux dışa aktar CLASSPATH = $ CLASSPATH: $ JSON_JAVA / json-20180813.jar :. | 
| 3 | Mac dışa aktar CLASSPATH = $ CLASSPATH: $ JSON_JAVA / json-20180813.jar :. | 
CDL sınıfı, virgülle ayrılmış bir metni JSONArray'e dönüştürmek için statik yöntemler sağlar ve bunun tersi de geçerlidir.
Örnekte aşağıdaki yöntemler ele alınmıştır.
- rowToJSONArray(String) - Virgülle ayrılmış bir metni JSONArray Nesnesine dönüştürür. 
- rowToString(JSONArray) - JSONArray öğesini virgülle ayrılmış metne dönüştürür. 
- toJSONArray(String) - Çok satırlı virgülle ayrılmış bir metni Object of JSONArray nesnelerine dönüştürür. 
- toJSONArray(JSONArray, String) - JSONArray Nesnesini ve virgülle ayrılmış metni JSONArray Nesnesine dönüştürür. 
Misal
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));
   }
}Çıktı
["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"}]Tanımlama bilgisi sınıfı, web tarayıcısının tanımlama bilgisi metnini JSONObject'e ve tersi yönde dönüştürmek için statik yöntemler sağlar.
Örnekte aşağıdaki yöntemler ele alınmıştır.
- toJSONObject(String) - Bir çerez metnini JSONObject Nesnesine dönüştürür. 
- toString(JSONObject) - JSONObject öğesini tanımlama bilgisi metnine dönüştürür. 
Misal
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));        
   }
}Çıktı
{"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=/CookieList sınıfı, Cookie List'i JSONObject'e ve tersi yönde dönüştürmek için statik yöntemler sağlar. Çerez Listesi, ad / değer çiftlerinden oluşan bir dizidir.
Örnekte aşağıdaki yöntemler ele alınmıştır.
- toJSONObject(String) - Bir çerez listesi metnini JSONObject Nesnesine dönüştürür. 
- toString(JSONObject) - JSONObject öğesini tanımlama bilgisi listesi metnine dönüştürür. 
Misal
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));
   }
}Çıktı
username=Mark Den
{"username":"Mark Den"}HTTP sınıfı, web tarayıcısının üstbilgi metnini JSONObject'e ve tersi yönde dönüştürmek için statik yöntemler sağlar.
Örnekte aşağıdaki yöntemler ele alınmıştır.
- toJSONObject(String) - Bir başlık metnini JSONObject Nesnesine dönüştürür. 
- toString(JSONObject) - JSONObject öğesini başlık metnine dönüştürür. 
Misal
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));
   }
}Çıktı
POST "http://www.tutorialspoint.com/" HTTP/1.1
{"Request-URI":"http://www.tutorialspoint.com/","Method":"POST","HTTP-Version":"HTTP/1.1"}JSONArray, sıralı bir değerler dizisidir. Değerlere dizine göre erişme ve değer koyma yöntemleri sağlar. Aşağıdaki türler desteklenir -
- Boolean 
- JSONArray 
- JSONObject 
- Number 
- String 
- JSONObject.NULL nesnesi 
Misal
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);
   }
}Çıktı
JSONArray: 
["foo",100,1000.21,true,null]JSONML sınıfı, bir XML metnini JSONArray'e dönüştürmek için statik yöntemler sağlar ve bunun tersi de geçerlidir.
Örnekte aşağıdaki yöntemler ele alınmıştır.
- toJSONArray(String) - XML'yi JSONArray Nesnesine dönüştürür. 
- toJSONObject(String) - XML'yi JSONObject Nesnesine dönüştürür. 
- toString(JSONArray) - JSONArray Nesnesinden bir XML verir. 
- toString(JSONObject) - JSONObject Nesnesinden bir XML verir. 
Misal
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);
   }
}Çıktı
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 sınıfı, anahtar / değer çiftlerinin sıralanmamış bir koleksiyonudur. Değerlere anahtara göre erişme ve değer koyma yöntemleri sağlar. Aşağıdaki türler desteklenir -
- Boolean 
- JSONArray 
- JSONObject 
- Number 
- String 
- JSONObject.NULL nesnesi 
Misal
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);
   }
}Çıktı
{"Active":true,"Other Details":null,"ID":1,"Fees":1000.21,"list":["foo",100],"Name":"Robert"}JSONStringer, JSON Sözdizimi kurallarını onaylayan hızlı bir şekilde JSON Metni oluşturmak için kullanılan bir yardımcı sınıftır. Her JSONStringer örneği bir JSON metni oluşturabilir.
Misal
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);
   }
}Çıktı
{"Name":"Robert"}
["Robert","Julia","Dan"]
["Robert","Julia","Dan",{"Name":"Robert"}]Özellik sınıfı, özellikler metnini JSONObject'e ve tersi yönde dönüştürmek için statik yöntemler sağlar.
Örnekte aşağıdaki yöntemler ele alınmıştır.
- toJSONObject(Properties) - Bir özellik verilerini JSONObject Nesnesine dönüştürür. 
- toProperties(JSONObject) - JSONObject öğesini özellikler nesnesine dönüştürür. 
Misal
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));
   }
}Çıktı
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 sınıfı, bir XML metnini JSONObject'e ve tersi yönde dönüştürmek için statik yöntemler sağlar.
Örnekte aşağıdaki yöntemler ele alınmıştır.
- toJSONObject(String) - XML'yi JSONArray Nesnesine dönüştürür. 
- toString(JSONObject) - JSONObject Nesnesinden bir XML verir. 
Misal
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));
   }
}Çıktı
<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 yardımcı program sınıfları, geçersiz JSON durumunda JSONException oluşturur. Aşağıdaki örnek, JSONException'ın nasıl işleneceğini gösterir.
Misal
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());
      }
   }
}Çıktı
position: 24
Unexpected token RIGHT BRACE(}) at position 24.