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.