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