use*_*127 5 spring json jackson
我需要将地图传递回Web应用程序.
我习惯将地图封装在JSONObject中
但是因为我使用的是Spring和Jackson Haus.
是否有更简单的方法来维持pojo?我可以只注释MAP吗?
杰克逊有com.fasterxml.jackson.core.JsonNode,和特定的亚型一样ObjectNode.这些形式是所谓的Tree Model,这是与杰克逊处理JSON的3种方式之一 - 其他一些库(如org.json)只提供这种方式.
所以你应该可以使用JsonNode; 使用org.json图书馆没什么意义; 它很慢,并且已经过时了.
或者你可以使用java.util.Map,然后返回.杰克逊可以处理标准Lists,Maps和其他JDK类型.
如果您需要操作输出,即您不想提供对象的所有字段,您可以使用 JsonArray:
@RequestMapping(value = "/api/users", method = RequestMethod.GET)
public
@ResponseBody
String listUsersJson(ModelMap model) throws JSONException {
JSONArray userArray = new JSONArray();
for (User user : userRepository.findAll()) {
JSONObject userJSON = new JSONObject();
userJSON.put("id", user.getId());
userJSON.put("firstName", user.getFirstName());
userJSON.put("lastName", user.getLastName());
userJSON.put("email", user.getEmail());
userArray.put(userJSON);
}
return userArray.toString();
}
Run Code Online (Sandbox Code Playgroud)
使用这里的示例
否则,如果您将 jackson 添加到依赖项并设置带有响应注释的控制器方法,则@ResponseBody响应将自动映射到 JSON。在这里查看一个简单的例子。
| 归档时间: |
|
| 查看次数: |
11390 次 |
| 最近记录: |