Spring ResponseEntity不返回所有对象属性

时间:2017-08-22 00:47:49

标签: java json spring

我正在使用JPA使用rest控制器从数据库返回一个对象。我的问题是,当我使用new ResponseEntity<>(objectA, HttpStatus.OK);方法返回单个对象,并返回该单个对象时,返回给客户端的JSON缺少大多数对象属性。 即返回return new ResponseEntity<>(arrayWithObjectA, HttpStatus.OK);

但是,如果我将objectA放入数组中,并返回该数组 即class Link : public QWidget { Q_OBJECT public: Link(QUrl url, QWidget p = nullptr) : QWidget(p), _url(url) {} QUrl _url; void mouseReleaseEvent(QMouseEvent *) { QDesktopServices::openUrl(_url); } } 使用所有属性将正确的JSON返回给客户端。 谁能解释为什么会这样呢?

由于

1 个答案:

答案 0 :(得分:0)

创建 ResponseHandler.java 文件并写下代码

import java.util.Date;
import java.util.HashMap;
import java.util.Map;

import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;

public class ResponseHandler {

    public static ResponseEntity<Object> generateResponse(HttpStatus status, boolean error,String message, Object responseObj) {
        Map<String, Object> map = new HashMap<String, Object>();
        try {
            map.put("timestamp", new Date());
            map.put("status", status.value());
            map.put("error", error);
            map.put("message", message);
            map.put("data", responseObj);

            return new ResponseEntity<Object>(map,status);
        } catch (Exception e) {
            map.clear();
            map.put("timestamp", new Date());
            map.put("status", HttpStatus.INTERNAL_SERVER_ERROR.value());
            map.put("message", e.getMessage());
            return new ResponseEntity<Object>(map,status);
        }
    }

现在使用api

return ResponseHandler.generateResponse(HttpStatus.OK,false,"Write some message", objectA);

您的方法的返回类型应为ResponseEntity<Object>