小编Joh*_*apy的帖子

java/jackson - 链接@JsonValue注释和反序列化

我有以下的结构.我知道这看起来很奇怪,但我用这个例子模拟我们的代码.

public static class StringWrapper {
    protected final String s;

    @JsonValue
    public String getS() {
        return s;
    }

    public StringWrapper(final String s) {
        this.s = s;
    }
}

public static class StringWrapperOuter {
    protected final StringWrapper s;

    @JsonValue
    public StringWrapper getS() {
        return s;
    }

    public StringWrapperOuter(final StringWrapper s) {
        this.s = s;
    }
}

public static class POJO {
    protected final List<StringWrapperOuter> data;

    public List<StringWrapperOuter> getData() {
        return data;
    }

    public POJO(final List<StringWrapperOuter> data) {
        this.data = data;
    } …
Run Code Online (Sandbox Code Playgroud)

java jackson deserialization

8
推荐指数
2
解决办法
5749
查看次数

java/jackson - 不要序列化包装类

使用Jackson库序列化字符串列表时,它正确提供了一个JSON数组字符串:

<mapper>.writeValue(System.out, Arrays.asList("a", "b", "c"));

[ "a", "b", "c" ]
Run Code Online (Sandbox Code Playgroud)

但是,字符串由我们的代码中的类包装/包含:

public static class StringWrapper {
    protected final String s;

    public String getS() {
        return s;
    }

    public StringWrapper(final String s) {
        this.s = s;
    }
}
Run Code Online (Sandbox Code Playgroud)

在序列化"字符串包装器"列表时,我希望获得与上面相同的输出.现在我得到:

<mapper>.writeValue(System.out, Arrays.asList(new StringWrapper("a"), new StringWrapper("b"), new StringWrapper("c")));

[ {
  "s" : "a"
}, {
  "s" : "b"
}, {
  "s" : "c"
} ]
Run Code Online (Sandbox Code Playgroud)

这样做最方便的方法是什么?如果可能,反序列化也应该起作用.

java json list wrapper jackson

4
推荐指数
1
解决办法
1271
查看次数

标签 统计

jackson ×2

java ×2

deserialization ×1

json ×1

list ×1

wrapper ×1