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.