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