org.json - Panduan Cepat

org.json or JSON-Javaadalah toolkit berbasis Java sederhana untuk JSON. Anda dapat menggunakan org.json untuk menyandikan atau mendekode data JSON.

fitur

  • Specification Compliant - JSON.simple sepenuhnya sesuai dengan Spesifikasi JSON - RFC4627.

  • Lightweight - Memiliki sangat sedikit kelas dan menyediakan fungsionalitas yang diperlukan seperti encode / decode dan escaping json.

  • XML Conversion - Ini memberikan kemampuan konversi dari JSON ke XML dan sebaliknya.

  • HTTP Headers - Mendukung konversi HTTP Header ke JSON dan sebaliknya.

  • Cookie - Memberikan dukungan untuk konversi Cookie ke JSON dan sebaliknya.

  • CDL - Menyediakan dukungan untuk mengubah daftar yang dipisahkan koma ke JSON dan sebaliknya.

  • No dependency- Tidak ada ketergantungan perpustakaan eksternal. Dapat dimasukkan secara independen.

  • Java 1.6-1.8 compatible - Kode sumber dan biner kompatibel dengan Java 1.6-1.8

Pengaturan Lingkungan Lokal

JSON.simple adalah pustaka untuk Java, jadi persyaratan pertama adalah menginstal JDK di mesin Anda.

Persyaratan Sistem

JDK 1.5 atau lebih tinggi.
Penyimpanan Tidak ada persyaratan minimum.
Ruang Disk Tidak ada persyaratan minimum.
Sistem operasi Tidak ada persyaratan minimum.

Langkah 1: Verifikasi Instalasi Java di Mesin Anda

Pertama-tama, buka konsol dan jalankan perintah java berdasarkan sistem operasi yang Anda kerjakan.

OS Tugas Perintah
Windows Buka Konsol Perintah c: \> java -version
Linux Buka Terminal Perintah $ java -version
Mac Buka Terminal mesin: <joseph $ java -version

Mari verifikasi output untuk semua sistem operasi -

OS Keluaran
Windows

versi java "1.8.0_101"

Java (TM) SE Runtime Environment (build 1.8.0_101)

Linux

versi java "1.8.0_101"

Java (TM) SE Runtime Environment (build 1.8.0_101)

Mac

versi java "1.8.0_101"

Java (TM) SE Runtime Environment (build 1.8.0_101)

Jika Anda belum menginstal Java pada sistem Anda, unduh Java Software Development Kit (SDK) dari tautan berikut www.oracle.com . Kami mengasumsikan Java 1.8.0_101 sebagai versi yang diinstal untuk tutorial ini.

Langkah 2: Atur Lingkungan JAVA

Mengatur JAVA_HOMEvariabel lingkungan untuk menunjuk ke lokasi direktori dasar tempat Java diinstal pada mesin Anda. Sebagai contoh.

OS Keluaran
Windows Setel variabel lingkungan JAVA_HOME ke C: \ Program Files \ Java \ jdk1.8.0_101
Linux ekspor JAVA_HOME = / usr / local / java-current
Mac ekspor JAVA_HOME = / Library / Java / Home

Tambahkan lokasi compiler Java ke System Path.

OS Keluaran
Windows Tambahkan string C:\Program Files\Java\jdk1.8.0_101\bin di akhir variabel sistem, Path.
Linux ekspor PATH = $ PATH: $ JAVA_HOME / bin /
Mac tidak dibutuhkan

Verifikasi instalasi Java menggunakan perintah java -version seperti yang dijelaskan di atas.

Langkah 3: Unduh Arsip org.json

Unduh versi terbaru file jar org.json dari org.json @ MVNRepository . Pada saat menulis tutorial ini, kami telah mengunduh json-20180813, dan menyalinnya ke folder C: \> JSON.

OS Nama arsip
Windows json-20180813.jar
Linux json-20180813.jar
Mac json-20180813.jar

Langkah 4: Setel Lingkungan JSON_JAVA

Mengatur JSON_JAVAvariabel lingkungan untuk menunjuk ke lokasi direktori dasar tempat jar org.json disimpan di komputer Anda. Anggap saja kita telah menyimpan json-20180813.jar di folder JSON.

Sr Tidak OS & Deskripsi
1

Windows

Setel variabel lingkungan JSON_JAVA ke C: \ JSON

2

Linux

ekspor JSON_JAVA = / usr / local / JSON

3

Mac

ekspor JSON_JAVA = / Library / JSON

Langkah 5: Setel Variabel CLASSPATH

Mengatur CLASSPATH variabel lingkungan untuk diarahkan ke lokasi jar JSON.simple.

Sr Tidak OS & Deskripsi
1

Windows

Setel variabel lingkungan CLASSPATH ke% CLASSPATH%;% JSON_JAVA% \ json-20180813.jar;.;

2

Linux

ekspor CLASSPATH = $ CLASSPATH: $ JSON_JAVA / json-20180813.jar :.

3

Mac

ekspor CLASSPATH = $ CLASSPATH: $ JSON_JAVA / json-20180813.jar :.

Kelas CDL menyediakan metode statis untuk mengonversi teks yang dipisahkan koma menjadi JSONArray, dan sebaliknya.

Metode berikut tercakup dalam contoh.

  • rowToJSONArray(String) - Mengubah teks yang dipisahkan koma menjadi Objek JSONArray.

  • rowToString(JSONArray) - Mengonversi JSONArray menjadi teks yang dipisahkan koma.

  • toJSONArray(String) - Mengonversi teks yang dipisahkan koma multi-baris menjadi Objek objek JSONArray.

  • toJSONArray(JSONArray, String) - Mengonversi Objek JSONArray dan teks yang dipisahkan koma menjadi Objek JSONArray.

Contoh

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));
   }
}

Keluaran

["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"}]

Kelas cookie menyediakan metode statis untuk mengubah teks cookie browser web menjadi JSONObject, dan sebaliknya.

Metode berikut tercakup dalam contoh.

  • toJSONObject(String) - Mengubah teks cookie menjadi Objek JSONObject.

  • toString(JSONObject) - Mengubah JSONObject menjadi teks cookie.

Contoh

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));        
   }
}

Keluaran

{"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=/

Kelas CookieList menyediakan metode statis untuk mengonversi Daftar Cookie ke JSONObject, dan sebaliknya. Daftar Cookie adalah urutan pasangan nama / nilai.

Metode berikut tercakup dalam contoh.

  • toJSONObject(String) - Mengubah teks daftar cookie menjadi Objek JSONObject.

  • toString(JSONObject) - Mengubah JSONObject menjadi teks daftar cookie.

Contoh

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));
   }
}

Keluaran

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

Kelas HTTP menyediakan metode statis untuk mengubah teks header browser web menjadi JSONObject, dan sebaliknya.

Metode berikut tercakup dalam contoh.

  • toJSONObject(String) - Mengubah teks header menjadi Objek JSONObject.

  • toString(JSONObject) - Mengubah JSONObject menjadi teks header.

Contoh

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));
   }
}

Keluaran

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

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

JSONArray adalah urutan nilai yang diurutkan. Ini menyediakan metode untuk mengakses nilai berdasarkan indeks dan memasukkan nilai. Jenis berikut ini didukung -

  • Boolean

  • JSONArray

  • JSONObject

  • Number

  • String

  • JSONObject.NULL

Contoh

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);
   }
}

Keluaran

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

Kelas JSONML menyediakan metode statis untuk mengubah teks XML menjadi JSONArray, dan sebaliknya.

Metode berikut tercakup dalam contoh.

  • toJSONArray(String) - Mengubah XML menjadi Objek JSONArray.

  • toJSONObject(String) - Mengubah XML menjadi Objek JSONObject.

  • toString(JSONArray) - Memberikan XML dari Objek JSONArray.

  • toString(JSONObject) - Memberikan XML dari Objek JSONObject.

Contoh

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);
   }
}

Keluaran

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>

Kelas JSONObject adalah kumpulan key-value pair yang tidak berurutan. Ini menyediakan metode untuk mengakses nilai dengan kunci dan memasukkan nilai. Jenis berikut ini didukung -

  • Boolean

  • JSONArray

  • JSONObject

  • Number

  • String

  • JSONObject.NULL

Contoh

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);
   }
}

Keluaran

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

JSONStringer adalah kelas utilitas untuk membuat Teks JSON dengan cepat yang mengonfirmasi aturan Sintaks JSON. Setiap instance JSONStringer dapat menghasilkan satu teks JSON.

Contoh

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);
   }
}

Keluaran

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

Kelas properti menyediakan metode statis untuk mengonversi teks properti menjadi JSONObject, dan sebaliknya.

Metode berikut tercakup dalam contoh.

  • toJSONObject(Properties) - Mengubah data properti menjadi Objek JSONObject.

  • toProperties(JSONObject) - Mengubah JSONObject menjadi properti objek.

Contoh

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));
   }
}

Keluaran

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}

Kelas XML menyediakan metode statis untuk mengubah teks XML menjadi JSONObject, dan sebaliknya.

Metode berikut tercakup dalam contoh.

  • toJSONObject(String) - Mengubah XML menjadi Objek JSONArray.

  • toString(JSONObject) - Memberikan XML dari Objek JSONObject.

Contoh

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));
   }
}

Keluaran

<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"}

Kelas utilitas org.json menampilkan JSONException jika JSON tidak valid. Contoh berikut menunjukkan cara menangani JSONException.

Contoh

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());
      }
   }
}

Keluaran

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