java - Spring :返回@ResponseBody "ResponseEntity<List<JSONObject>>"

标签 java json spring rest http-status-codes

在 Controller 中,我创建了 json 数组。如果我返回 List<JSONObject>没关系:

@RequestMapping(value="", method=RequestMethod.GET, produces=MediaType.APPLICATION_JSON_VALUE)
public @ResponseBody List<JSONObject> getAll() {
    List<Entity> entityList = entityManager.findAll();

    List<JSONObject> entities = new ArrayList<JSONObject>();
    for (Entity n : entityList) {
        JSONObject entity = new JSONObject();
        entity.put("id", n.getId());
        entity.put("address", n.getAddress());
        entities.add(entity);
    }
    return entities;
}

但我需要返回 JSON 数组和 HTTP 状态码:

@RequestMapping(value="", method=RequestMethod.GET, produces=MediaType.APPLICATION_JSON_VALUE)
public @ResponseBody ResponseEntity<List<JSONObject>> getAll() {
    List<Entity> entityList = entityManager.findAll();

    List<JSONObject> entities = new ArrayList<JSONObject>();
    for (Entity n : entityList) {
        JSONObject Entity = new JSONObject();
        entity.put("id", n.getId());
        entity.put("address", n.getAddress());
        entities.add(entity);
    }
    return new ResponseEntity<JSONObject>(entities, HttpStatus.OK); // XXX
}

Eclipse 在 XXX 行看到错误:

Multiple markers at this line
    - The constructor ResponseEntity<JSONObject>(List<JSONObject>, HttpStatus) is undefined
    - Type mismatch: cannot convert from ResponseEntity<JSONObject> to 
     ResponseEntity<List<JSONObject>>
    - Type mismatch: cannot convert from ResponseEntity<JSONObject> to JSONObject

如何返回json+http回复?我有返回一个 json 对象 + http 状态码的工作代码:

@RequestMapping(value="/{address}", method=RequestMethod.GET, produces=MediaType.APPLICATION_JSON_VALUE)
public @ResponseBody ResponseEntity<JSONObject> getEntity(@PathVariable("address") int address) {
    Entity n = entityManager.findByAddress(address);
    JSONObject o = new JSONObject();
    o.put("id", n.getId());
    o.put("address", n.getAddress());
    return new ResponseEntity<JSONObject>(o, HttpStatus.OK);
}

最佳答案

代替

return new ResponseEntity<JSONObject>(entities, HttpStatus.OK);

试试

return new ResponseEntity<List<JSONObject>>(entities, HttpStatus.OK);

关于java - Spring :返回@ResponseBody "ResponseEntity<List<JSONObject>>",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26320106/

相关文章:

java - Spring Tool Suite 4中的内容自动完成

java - 应该如何查询它是否有效? ElasticSearch Java API

java - 如何在 Vert.x (java) 中使用 Jackson 流式传输 JSON 结果

java - Spring 事务管理 - 在哪里放置注释?

java.sql.时间戳值; Spring-boot项目中的嵌套异常是java.sql.SQLDataException

java - 无法找到 Java Uno RunTime (jurt) 源

java - MongoDB查询嵌套键值并比较内部值列表

javascript - 使用 ajax 回复博客文章评论

python - 从python中的请求查询结果中提取一个json字段

java - 如何关闭通过 Spring 创建的 jdbc 连接?