【问题标题】:Spring Boot Restcontroller JSON Response doesnt include any property names but only valuesSpring Boot Restcontroller JSON 响应不包含任何属性名称,仅包含值
【发布时间】:2023-02-02 21:21:35
【问题描述】:

我正在尝试熟悉 Java 和 Spring Boot,并且我已经设法根据需要设置了一项服务和一个控制器,但是有一个小问题我似乎无法解决。

Get Mapping 应该从第 3 方库返回一个类列表,它确实这样做了。问题是它不包括 JSON 响应中的属性名称。

    @GetMapping("/{symbol}/{timeframe}")
public List<Candlestick> getOHLCV(@PathVariable("symbol") String symbol,
        @PathVariable("timeframe") String timeframe) {

    return service.getOHLCV(symbol, IntervalConverter.fromString(timeframe));
}

Candlestick 类包含开盘价、最高价、最低价、收盘价等属性,但响应中都缺少这些属性名称。为什么会这样,如何解决?

我得到这样的响应数组:

[[1675190700000,“ 23143.08000000”,“ 23179.36000000”,“ 23141.26000000”,“ 23178.22000000”,“ 766.15847000

【问题讨论】:

  • 是的,JSON 中的列表看起来像一个数组。您的 Candlestick 类是否实现了 toString() 函数?如果打印出服务方法调用的响应,您会看到什么?
  • 是的,它应该是一个数组,但它应该是一个 JSON 对象数组,包括它们的属性,如 close:number、high:number 等。当我 system.out.println 控制器内的服务响应时,它被正确记录,包括所有属性 139490.04905910],Candlestick[ openTime=1675209000000,open=23134.49000000,high=23157.64000000,low=23122.79000000,close=23150.110000
  • 你能分享 Candlestick 类的代码吗?

标签: java spring spring-boot


【解决方案1】:

尝试在属性名称上添加 @JsonProperty

public class Candlestick {
   @JsonProperty("open")
   private String open;

   @JsonProperty("high")
   private String high;

   @JsonProperty("low")
   private String low;

   @JsonProperty("close")
   private String close;

   // getters and setters
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多