首页 > 解决方案 > 无法正确返回类的 JSONObject 字段

问题描述

我有一个如下所示的 DTO:

@Getter
@Setter
@AllArgsConstructor
public class LightRoundResponse {
    private String round;
    private JSONObject fields;
}

我能够从数据库中存储和获取 JSON 对象。在使用 ResultSet 的字段设置 DTO 的字段属性后,我可以在调试时看到包含正确数据的 JSONObject。

然而,我得到的回应是:

{
    "round": "A Round",
    "fields": {
        "empty": false
    }
}

fields 对象不正确,我认为因为它是 JSONObject 可能是一个问题,但我不确定。我怎样才能得到正确的回应而不是"empty": false

标签: javaspring-bootspring-mvcspring-data-jpa

解决方案


将 JSONObject 转换为 Map 就可以完成这项工作。

例子:

public class LightRoundResponse {
    private String round;
    private Map fields;

    public void setFields(JSONObject fields){
        this.fields = fields.toMap();
    }
}

我希望我能理解为什么 JSONObject 不起作用,但似乎社区也不知道。因此,发布一个解决方法,可以帮助面临同样问题的人。


推荐阅读