SpringMVC响应json不适合布尔属性

时间:2016-08-24 03:41:03

标签: java json spring

我使用SpringMVC 4.2.5,并制作一个休息控制器,但响应不是我想要的。 这是细节。 我有一个名为propertyEntity的实体,

public class PropertyEntity implements Serializable, Cloneable {
    private static final long serialVersionUID = -7032855749875735832L;
    private int id;
    private String propertyName;
    private boolean isEnable;
    private boolean isDimension;
    private boolean isMetric;
}

和控制器是:

@Controller
@RequestMapping("/api/v1/properties")
public class PropertyController {
    @RequestMapping(method = RequestMethod.GET,
                produces = "application/json;charset=utf-8")
    @ResponseStatus(HttpStatus.OK)
    public @ResponseBody
    List<PropertyEntity> getAll() {
         return propertyService.getAll();
    }
}

当我请求api时,结果是:

[
    {
        "id": 1,
        "propertyName": "money1",
        "isEnable": true,
        "dimension": false,
        "metric": true
  },
  {
        "id": 2,
        "propertyName": "money2",
        "isEnable": true,
        "dimension": false,
        "metric": true
  } 
]

我想要的是:

[
    {
        "id": 1,
        "propertyName": "money1",
        "isEnable": true,
        "isDimension": false,
        "isMetric": true
  },
  {
        "id": 2,
        "propertyName": "money2",
        "isEnable": true,
        "isDimension": false,
        "isMetric": true
  } 
]

意想不到的是: isDimention已更改为dimensionisMetric已更改为metric, 但是isEnable是对的。

1 个答案:

答案 0 :(得分:0)

我假设你使用jackson将“PropertyEntity”对象转换为json。

这里可能出现的问题可能是PropertyEntity类中的getter和setter。

查看isEnable的getter / setter,并遵循isMetric&amp;的类似命名约定isDimension

确保布尔的getter以isIsMetric()...而不是getIsMetric()开头。

如果这没有帮助,请在此分享你的吸气剂和制定者。