【问题标题】:How to format Spring REST JSON output如何格式化 Spring REST JSON 输出
【发布时间】:2017-07-29 17:41:14
【问题描述】:

我正在研究 Java Spring REST API,它提供如下 JSON 输出:

{
    "speed1mbps": null,
    "speed10mbps": null,
    "speed100mbps": null,
    "speed1000mbps": null,
    "phone": null,
    "NAME": "some name",
    "STREET": "ST address",
    "city": "somecity",
    "state": "some state",
    "zip": "232409",
}

但我需要如下格式化的 JSON 输出。

{   
    speed:[
        1mbps:null
        10mbps:null
        100mbps:null
        1000mbps:null
        1000mbps:null
    ],
    "phone": null,
    "NAME": "some name",
    "STREET": "ST address",
    "city": "somecity",
    "state": "some state",
    "zip": "232409",
}

是否可以格式化 JSON?请告诉我如何格式化 JSON。

【问题讨论】:

  • 你想要的不是有效的 JSON。
  • 此外,在这个问题的三英里范围内没有任何 Java 的迹象。我正在删除那个标签。

标签: json spring


【解决方案1】:

如果您想根据需要格式化 JSON,您需要创建一个自定义 dto,请参见下面的示例:

class Dto {
    private Map<String, String> speeds;
    private String phone;
    private String name;
    private String street;
    private String city;
    private String state;
    private String zip;
}

然后,您可以以...的速度添加条目

speeds.put("1mbps", null);
speeds.put("10mbps", null);
speeds.put("100mbps", null);
speeds.put("1000mbps", null);

那么有效的 JSON 结果将是....

{   
    speeds:{
        1mbps:null,
        10mbps:null,
        100mbps:null,
        1000mbps:null,
        1000mbps:null
    },
    "phone": null,
    "NAME": "some name",
    "STREET": "ST address",
    "city": "somecity",
    "state": "some state",
    "zip": "232409",
}

这是您应该返回到 REST 响应的类。

【讨论】:

  • 谢谢,添加自定义 DTO 很有意义,但是当我使用 Hibernate 时如何映射字段。是否,我将速度放在单独的 DTO 中并填充 speeds.put("1mbps", sppeds.get1mbps());?像这样?
  • 如果您拥有属性为 1mpbs、10mbps 等的实体 (SPPEDS),则使用 hibernate 将该实体映射到您的 db 表,然后一旦您检索到该实体的信息,您就可以使用 dto .getSpeeds().put("1mbps", sppeds.get1mbps()) 等等,然后返回 dto 作为您的响应。
  • 我进行了更改它看起来很好,但它失败了,因为我无法使用休眠映射速度映射它抛出错误无法确定类型:映射,在表中,如何我避免这个?
  • 嗨@Raj,不要将Dto映射到您的数据库表,而是映射实体(SPPEDS)。请在此处查看相关概念stackoverflow.com/questions/42688570/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-05
  • 1970-01-01
  • 1970-01-01
  • 2021-05-16
相关资源
最近更新 更多