JSON是一種輕量級的數據交換格式,廣泛應用于Web開發和移動應用開發中。而Java的JSON API可以讓開發者實現JSON的讀取、生成和操作。這里我們介紹如何使用Java JSON API對JSON進行序列化和反序列化。
首先,我們需要導入JSON API的jar包,例如可以在Maven中添加以下依賴:
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20201115</version>
</dependency>
接著,我們可以用JSON API將Java對象轉換為JSON字符串:
import org.json.JSONObject;
public class Main {
public static void main(String[] args) {
Person person = new Person("Tom", 18);
JSONObject jsonObject = new JSONObject(person);
String jsonStr = jsonObject.toString();
System.out.println(jsonStr); // {"name":"Tom","age":18}
}
}
class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
// getters and setters
}
在上面的代碼中,我們創建了一個名為Person的Java對象,并使用JSONObject將其轉換為JSON字符串。反過來,我們也可以使用JSON API將JSON字符串轉換為Java對象:
import org.json.JSONObject;
public class Main {
public static void main(String[] args) {
String jsonStr = "{\"name\":\"Tom\",\"age\":18}";
JSONObject jsonObject = new JSONObject(jsonStr);
Person person = new Person(jsonObject.getString("name"), jsonObject.getInt("age"));
System.out.println(person); // Person{name='Tom', age=18}
}
}
class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
// getters and setters
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
在上面的代碼中,我們使用JSONObject將JSON字符串轉換為JSON對象,然后根據鍵名獲取值并創建Java對象。最后,我們可以看到Java對象的toString方法已經正確輸出了我們期待的結果。