在Play Framework中,我们有帮助方法Json.toJson()
从请求正文或数据库查询中生成JsonNodes
,但我不知道如何从对象中删除特定字段已经生成。
答案 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的其余部分,因为杰克逊是一个复杂的图书馆,你可能想要自己教育这个主题。