org.json - Hướng dẫn nhanh
org.json or JSON-Javalà một bộ công cụ dựa trên Java đơn giản cho JSON. Bạn có thể sử dụng org.json để mã hóa hoặc giải mã dữ liệu JSON.
Đặc trưng
Specification Compliant - JSON.simple hoàn toàn tuân thủ Đặc điểm kỹ thuật JSON - RFC4627.
Lightweight - Nó có rất ít lớp và cung cấp các chức năng cần thiết như mã hóa / giải mã và thoát json.
XML Conversion - Nó cung cấp khả năng chuyển đổi từ JSON sang XML và ngược lại.
HTTP Headers - Hỗ trợ chuyển đổi HTTP Header sang JSON và ngược lại.
Cookie - Cung cấp hỗ trợ chuyển đổi Cookie sang JSON và ngược lại.
CDL - Cung cấp hỗ trợ để chuyển đổi danh sách được phân tách bằng dấu phẩy sang JSON và ngược lại.
No dependency- Không phụ thuộc thư viện bên ngoài. Có thể được bao gồm độc lập.
Java 1.6-1.8 compatible - Mã nguồn và mã nhị phân tương thích với Java 1.6-1.8
Thiết lập môi trường cục bộ
JSON.simple là một thư viện dành cho Java, vì vậy yêu cầu đầu tiên là phải cài đặt JDK trong máy của bạn.
Yêu cầu hệ thống
JDK | 1,5 trở lên. |
---|---|
Ký ức | Không có yêu cầu tối thiểu. |
Dung lượng đĩa | Không có yêu cầu tối thiểu. |
Hệ điều hành | Không có yêu cầu tối thiểu. |
Bước 1: Xác minh cài đặt Java trong máy của bạn
Trước hết, mở bảng điều khiển và thực hiện một lệnh java dựa trên hệ điều hành bạn đang làm việc.
Hệ điều hành | Bài tập | Chỉ huy |
---|---|---|
các cửa sổ | Mở bảng điều khiển lệnh | c: \> java -version |
Linux | Mở Command Terminal | $ java -version |
Mac | Mở thiết bị đầu cuối | máy: <joseph $ java -version |
Hãy xác minh kết quả đầu ra cho tất cả các hệ điều hành -
Hệ điều hành | Đầu ra |
---|---|
các cửa sổ | phiên bản java "1.8.0_101" Môi trường thời gian chạy Java (TM) SE (bản dựng 1.8.0_101) |
Linux | phiên bản java "1.8.0_101" Môi trường thời gian chạy Java (TM) SE (bản dựng 1.8.0_101) |
Mac | phiên bản java "1.8.0_101" Môi trường thời gian chạy Java (TM) SE (bản dựng 1.8.0_101) |
Nếu bạn chưa cài đặt Java trên hệ thống của mình, hãy tải xuống Bộ phát triển phần mềm Java (SDK) từ liên kết sau www.oracle.com . Chúng tôi giả sử Java 1.8.0_101 là phiên bản đã cài đặt cho hướng dẫn này.
Bước 2: Đặt Môi trường JAVA
Đặt JAVA_HOMEbiến môi trường để trỏ đến vị trí thư mục cơ sở nơi Java được cài đặt trên máy của bạn. Ví dụ.
Hệ điều hành | Đầu ra |
---|---|
các cửa sổ | Đặt biến môi trường JAVA_HOME thành C: \ Program Files \ Java \ jdk1.8.0_101 |
Linux | xuất JAVA_HOME = / usr / local / java-current |
Mac | export JAVA_HOME = / Library / Java / Home |
Nối vị trí trình biên dịch Java vào Đường dẫn Hệ thống.
Hệ điều hành | Đầu ra |
---|---|
các cửa sổ | Nối chuỗi C:\Program Files\Java\jdk1.8.0_101\bin ở cuối biến hệ thống, Path. |
Linux | xuất PATH = $ PATH: $ JAVA_HOME / bin / |
Mac | không yêu cầu |
Xác minh cài đặt Java bằng lệnh java -version Như đã giải thích ở trên.
Bước 3: Tải xuống tệp lưu trữ org.json
Tải xuống phiên bản mới nhất của tệp jar org.json từ org.json @ MVNRepository . Tại thời điểm viết hướng dẫn này, chúng tôi đã tải xuống json-20180813 và sao chép nó vào thư mục C: \> JSON.
Hệ điều hành | Tên lưu trữ |
---|---|
các cửa sổ | json-20180813.jar |
Linux | json-20180813.jar |
Mac | json-20180813.jar |
Bước 4: Đặt Môi trường JSON_JAVA
Đặt JSON_JAVAbiến môi trường để trỏ đến vị trí thư mục cơ sở nơi lưu trữ jar org.json trên máy của bạn. Giả sử chúng ta đã lưu trữ json-20180813.jar trong thư mục JSON.
Sr.No | Hệ điều hành & Mô tả |
---|---|
1 | Windows Đặt biến môi trường JSON_JAVA thành C: \ JSON |
2 | Linux xuất JSON_JAVA = / usr / local / JSON |
3 | Mac xuất JSON_JAVA = / Library / JSON |
Bước 5: Đặt biến CLASSPATH
Đặt CLASSPATH biến môi trường để trỏ đến vị trí jar JSON.simple.
Sr.No | Hệ điều hành & Mô tả |
---|---|
1 | Windows Đặt biến môi trường CLASSPATH thành% CLASSPATH%;% JSON_JAVA% \ json-20180813.jar;.; |
2 | Linux xuất CLASSPATH = $ CLASSPATH: $ JSON_JAVA / json-20180813.jar:. |
3 | Mac xuất CLASSPATH = $ CLASSPATH: $ JSON_JAVA / json-20180813.jar:. |
Lớp CDL cung cấp các phương thức tĩnh để chuyển đổi văn bản được phân tách bằng dấu phẩy thành JSONArray và ngược lại.
Các phương pháp sau được đề cập trong ví dụ.
rowToJSONArray(String) - Chuyển đổi văn bản được phân tách bằng dấu phẩy thành Đối tượng JSONArray.
rowToString(JSONArray) - Chuyển đổi JSONArray thành văn bản được phân tách bằng dấu phẩy.
toJSONArray(String) - Chuyển đổi văn bản được phân tách bằng dấu phẩy nhiều dòng thành Đối tượng của các đối tượng JSONArray.
toJSONArray(JSONArray, String) - Chuyển đổi một Đối tượng JSONArray và văn bản được phân tách bằng dấu phẩy thành Đối tượng JSONArray.
Thí dụ
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));
}
}
Đầu ra
["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"}]
Lớp Cookie cung cấp các phương thức tĩnh để chuyển đổi văn bản cookie của trình duyệt web thành một JSONObject và ngược lại.
Các phương pháp sau được đề cập trong ví dụ.
toJSONObject(String) - Chuyển đổi văn bản cookie thành Đối tượng JSONObject.
toString(JSONObject) - Chuyển đổi một JSONObject thành văn bản cookie.
Thí dụ
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));
}
}
Đầu ra
{"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=/
Lớp CookieList cung cấp các phương thức tĩnh để chuyển đổi Cookie List thành JSONObject và ngược lại. Cookie List là một chuỗi các cặp tên / giá trị.
Các phương pháp sau được đề cập trong ví dụ.
toJSONObject(String) - Chuyển đổi văn bản danh sách cookie thành Đối tượng JSONObject.
toString(JSONObject) - Chuyển đổi JSONObject thành văn bản danh sách cookie.
Thí dụ
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));
}
}
Đầu ra
username=Mark Den
{"username":"Mark Den"}
Lớp HTTP cung cấp các phương thức tĩnh để chuyển đổi văn bản tiêu đề của trình duyệt web thành một JSONObject và ngược lại.
Các phương pháp sau được đề cập trong ví dụ.
toJSONObject(String) - Chuyển đổi văn bản tiêu đề thành Đối tượng JSONObject.
toString(JSONObject) - Chuyển đổi một JSONObject thành văn bản tiêu đề.
Thí dụ
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));
}
}
Đầu ra
POST "http://www.tutorialspoint.com/" HTTP/1.1
{"Request-URI":"http://www.tutorialspoint.com/","Method":"POST","HTTP-Version":"HTTP/1.1"}
JSONArray là một chuỗi giá trị có thứ tự. Nó cung cấp các phương thức để truy cập giá trị theo chỉ mục và đặt giá trị. Các loại sau được hỗ trợ:
Boolean
JSONArray
JSONObject
Number
String
Đối tượng JSONObject.NULL
Thí dụ
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);
}
}
Đầu ra
JSONArray:
["foo",100,1000.21,true,null]
Lớp JSONML cung cấp các phương thức tĩnh để chuyển đổi một văn bản XML thành một JSONArray và ngược lại.
Các phương pháp sau được đề cập trong ví dụ.
toJSONArray(String) - Chuyển đổi XML thành Đối tượng JSONArray.
toJSONObject(String) - Chuyển đổi XML thành Đối tượng JSONObject.
toString(JSONArray) - Cung cấp một XML từ một Đối tượng JSONArray.
toString(JSONObject) - Cung cấp một XML từ một Đối tượng JSONObject.
Thí dụ
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);
}
}
Đầu ra
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>
Lớp JSONObject là một tập hợp các cặp khóa-giá trị không có thứ tự. Nó cung cấp các phương thức để truy cập giá trị bằng khóa và đặt giá trị. Các loại sau được hỗ trợ:
Boolean
JSONArray
JSONObject
Number
String
Đối tượng JSONObject.NULL
Thí dụ
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);
}
}
Đầu ra
{"Active":true,"Other Details":null,"ID":1,"Fees":1000.21,"list":["foo",100],"Name":"Robert"}
JSONStringer là một lớp tiện ích để xây dựng một Văn bản JSON một cách nhanh chóng xác nhận các quy tắc Cú pháp JSON. Mỗi phiên bản của JSONStringer có thể tạo ra một văn bản JSON.
Thí dụ
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);
}
}
Đầu ra
{"Name":"Robert"}
["Robert","Julia","Dan"]
["Robert","Julia","Dan",{"Name":"Robert"}]
Lớp thuộc tính cung cấp các phương thức tĩnh để chuyển đổi văn bản thuộc tính thành một JSONObject và ngược lại.
Các phương pháp sau được đề cập trong ví dụ.
toJSONObject(Properties) - Chuyển đổi dữ liệu thuộc tính thành Đối tượng JSONObject.
toProperties(JSONObject) - Chuyển đổi một JSONObject thành đối tượng thuộc tính.
Thí dụ
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));
}
}
Đầu ra
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}
Lớp XML cung cấp các phương thức tĩnh để chuyển đổi một văn bản XML thành một JSONObject và ngược lại.
Các phương pháp sau được đề cập trong ví dụ.
toJSONObject(String) - Chuyển đổi XML thành Đối tượng JSONArray.
toString(JSONObject) - Cung cấp một XML từ một Đối tượng JSONObject.
Thí dụ
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));
}
}
Đầu ra
<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"}
Các lớp tiện ích của org.json ném JSONException trong trường hợp JSON không hợp lệ. Ví dụ sau cho thấy cách xử lý JSONException.
Thí dụ
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());
}
}
}
Đầu ra
position: 24
Unexpected token RIGHT BRACE(}) at position 24.