小编tao*_*ang的帖子

使用jackson转换Java对象时如何忽略可选属性

我正在使用Jackson 1.9.2(org.codehaus.jackson)来修改从Java对象到匹配的JSON构造.这是我的java对象:

Class ColorLight {
    String type;
    boolean isOn;
    String value;

    public String getType(){
        return type;
    }

    public setType(String type) {
        this.type = type;
    }

    public boolean getIsOn(){
        return isOn;
    }

    public setIsOn(boolean isOn) {
        this.isOn = isOn;
    }

    public String getValue(){
        return value;
    }

    public setValue(String value) {
        this.value = value;
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我做了以下转换,我会得到我想要的结果.

ColorLight light = new ColorLight();
light.setType("red");
light.setIsOn("true");
light.setValue("255");
objectMapper mapper = new ObjectMapper();
jsonString = mapper.writeValueAsString();
Run Code Online (Sandbox Code Playgroud)

jsonString会是这样的:

{"type":"red","isOn":"true", "value":"255"}
Run Code Online (Sandbox Code Playgroud)

但有时我没有isOn属性的值

ColorLight light = new ColorLight(); …
Run Code Online (Sandbox Code Playgroud)

java json jackson

9
推荐指数
2
解决办法
2万
查看次数

如何使用Jackson验证重复属性?

我正在使用Jackson JSON库将一些JSON对象转换为POJO类.问题是,当我使用具有重复属性的JSON对象时:

{
  "name":"xiaopang",
  "email":"xiaopang1@123.com",
  "email":"xiaopang2@123.com"
}
Run Code Online (Sandbox Code Playgroud)

杰克逊报告最后一封电子邮件"email":"xiaopang2@123.com",然后解析该对象.

我从JSON语法中学到了允许对象中的重复键吗?反序列化具有重复属性的JSON对象时会发生什么情况取决于库实现,抛出错误或使用最后一个重复键.

尽管跟踪所有属性的开销,有没有办法告诉杰克逊在这种情况下报告错误或异常,例如"重复密钥"?

java json jackson

8
推荐指数
1
解决办法
3521
查看次数

标签 统计

jackson ×2

java ×2

json ×2