JSON 和 Java 物件之間的轉換(基本)
預設情況下,Jackson(Play JSON 使用的庫)將嘗試將每個公共欄位對映到具有相同名稱的 json 欄位。如果物件具有 getter / setter,它將從中推斷出名稱。所以,如果你有一個帶有私有欄位的 Book
類來儲存 ISBN 並且獲得/設定名為 getISBN/setISBN
的方法,那麼傑克遜將會
- 從 Java 轉換為 JSON 時,使用欄位
ISBN
建立 JSON 物件 - 使用
setISBN
方法在 Java 物件中定義 isbn 欄位(如果 JSON 物件具有ISBN
欄位)。
從 JSON 建立 Java 物件
public class Person {
String id, name;
}
JsonNode node = Json.parse("{\"id\": \"3S2F\", \"name\", \"Salem\"}");
Person person = Json.fromJson(node, Person.class);
System.out.println("Hi " + person.name); // Hi Salem
從 Java 物件建立 JSON 物件
// "person" is the object from the previous example
JsonNode personNode = Json.toJson(person)
從 JSON 物件建立 JSON 字串
// personNode comes from the previous example
String json = personNode.toString();
// or
String json = Json.stringify(json);
JSON 漂亮的列印
System.out.println(personNode.toString());
/* Prints:
{"id":"3S2F","name":"Salem"}
*/
System.out.println(Json.prettyPrint(personNode));
/* Prints:
{
"id" : "3S2F",
"name" : "Salem"
}
*/