【问题标题】:Return Json from toStringMethod with single quotes in Java?用Java中的单引号从toString方法返回Json?
【发布时间】:2021-10-21 11:29:54
【问题描述】:

我希望我的 toString 方法以带单引号的 json 格式返回对象。我不想手动管理 toString 方法。有没有办法自动完成? Intent 是,如果我添加一个新变量,我不想重做我的 toString 方法。

类 MyClass { int myVariable;

    @Overide
    public string toString() {
       return "'MyClass':{'myVariable'" +myVariable+"':}"
    }

}

【问题讨论】:

  • 你能解释一下为什么你想要单引号吗?还是来自 toString 的 JSON?
  • 你可以使用lombok来实现@ToString所以你不需要自己写-projectlombok.org/features/ToString

标签: java json tostring


【解决方案1】:

您可以使用 Jackson 或 Gson 之类的库,

例子:

与杰克逊:

    @Override
    public String toString() {
        try {
            return new ObjectMapper().writeValueAsString(this);
        } catch (JsonProcessingException e) {
            e.printStackTrace();
            return null;
        }
    }

与 Gson:

    @Override
    public String toString() {
        return new Gson().toJson(this);
    }

示例输出:

{"calle":"Calle","numero":100}

这里有例子:Does it make sense to use reflection when implementing toString()?

【讨论】:

  • 谢谢,有没有办法用单引号打印出来?我希望我的变量和值用单引号引起来
  • 您可以像这样在输出中添加替换:return new ObjectMapper().writeValueAsString(this).replace("\"", "'"); 这将生成这样的 json:{'street':'Street','number':100}我>
  • 另外,将 ObjectMapper 作为模型类的依赖项通常是不受欢迎的
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-22
  • 2016-01-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-13
相关资源
最近更新 更多