JSON反序列化属性,包括$

时间:2018-09-17 09:30:57

标签: java json jackson

具有一个具有这样属性的JSON,我尝试与杰克逊进行反序列化:

 { "$fooid" : "yfdfjjhkjhkljhd768622323jjj" }

问题出在这里,我无法读取键“ $ fooid”。

我试图用

为属性添加注释
@JsonAlias("$fooid")
private String fooid;

也为

@JsonProperty("$fooid")
private String fooid;

两个变体均不起作用,属性fooid始终为null。

如何在Java中反序列化它?有提示吗?

1 个答案:

答案 0 :(得分:1)

我不确定您的情况如何,但是在2.0.0版上,它正在为我工​​作。

public class JSonAliasWithSpecialCharacters {

    public static void main(String[] args) throws IOException {
        String json="{ \"$fooid\" : \"yfdfjjhkjhkljhd768622323jjj\" }";
        ObjectMapper mapper = new ObjectMapper();
        JsonFooid fooid = mapper.readValue(json, JsonFooid.class);
        System.out.println("read the foodid:"+fooid.getFooid());
    }

}

public class JsonFooid {

    @JsonProperty("$fooid")
    private String fooid;

    public String getFooid() {
        return fooid;
    }

    public void setFooid(String fooid) {
        this.fooid = fooid;
    }

}