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