如何从Play Framework中的JSON对象中删除元素

时间:2015-04-10 09:53:11

标签: java json playframework jackson

在Play Framework中,我们有帮助方法Json.toJson()从请求正文或数据库查询中生成JsonNodes,但我不知道如何从对象中删除特定字段已经生成。

1 个答案:

答案 0 :(得分:2)

Play使用引擎盖下的FasterXML/jackson

例如,假设您要从请求中检索有效内容。你在你的控制器中调用request()。body()。asJson(),你得到一个JsonNode。

JsonNode没有插入功能,但ObjectNode具有。


1。创建一个ObjectNode (显示两种常用方法):

a。转换为ObjectNode

ObjectNode json = (ObjectNode) request().body().asJson();

b。使用ObjectMapper(为您提供更多控件,如序列化功能)

ObjectMapper mapper = new ObjectMapper();

//set serialization features in cases where you need them
mapper.configure(SerializationFeature.WRITE_EMPTY_JSON_ARRAYS, false);
mapper.setSerializationInclusion(Include.NON_NULL);

ObjectNode json = mapper.createObjectNode();


2. Adding/removing elements(链接了ObjectNode API,以便您可以检查所有可用的方法)

json.remove("fieldName");
json.put("anotherFieldName", "yesWeCan")
    .put("canWeDoBoolean", true)
    .put("howAboutNumbers", 1234567890);


不要忘记检查documentation/tutorials的其余部分,因为杰克逊是一个复杂的图书馆,你可能想要自己教育这个主题。