首页 > 解决方案 > 如何控制 Java 类的 Json 输出

问题描述

我有一个 REST API 响应对象类,其中包含各种成员及其 getter 和 setter。其中一名成员是

private String name;

它是 JSON 化的,类似于

"name": "John",

但是,出于某种原因,我想将此成员更改为

private Name name;

名称在哪里

public class Name implements Something {
    private String str;

    public Name(String name) {
        this.str = name;
    }       
    @Override
    public String toString() {
        return str;
    }
    public String getValue() {
        return str;
    }
    //... other methods
}

But now it is JSON'ized to something like
"name": {
    "value": "John"
},

无论如何我可以注释名称字段以便使用 toString() 所以它的 JSON 表示仍然如下所示?

"name": "<name.toString()>"

标签: javajsonjax-rs

解决方案


如果您只想更改 toString() 结果,只需重写 toString()。
如果您使用 Json 工具,例如 fastjson,请使用 @JsonProperty("")


推荐阅读