Play Framework Java:如何返回含多个Json节点的JsonObject?
在Play Framework Java项目中构建包含多个Json节点的JsonObject
你说得完全对,你代码里用的"kunde" -> kundeNode这种箭头语法是Scala的键值对写法,Java并不支持,这就是导致编译错误的原因。下面是Play Framework Java版的正确写法:
首先,你把实体转为JsonNode的部分是没问题的:
JsonNode kundeNode = Json.toJson(kunde); JsonNode rechkopfNode = Json.toJson(rechkopf);
接下来构建包含多个节点的JsonObject,需要使用Play Java Json API提供的put方法来添加键值对,有两种写法可以选:
分步构建
// 创建空的JsonObject构建器 JsonObject resultJson = Json.newObject(); // 逐个添加键值对 resultJson.put("kunde", kundeNode); resultJson.put("rechKopf", rechkopfNode); // 返回响应 return ok(resultJson);
链式调用(更简洁)
如果喜欢更紧凑的写法,可以直接链式调用put方法:
return ok(Json.newObject() .put("kunde", kundeNode) .put("rechKopf", rechkopfNode));
本质上,Json.newObject()返回的是JsonObjectBuilder实例,每次调用put都会返回自身,所以可以一直链式添加新的键值对,最后它会自动转换为JsonObject供ok()方法使用。
内容的提问来源于stack exchange,提问作者Felix
相关产品推荐
相关产品推荐

