Java 对象 - 如何动态创建对象

标签 java spring-boot

我有一个如下所示的对象...它将是来自 Rest API 调用的响应对象。

{
    "date": "2020-01-04",
    "oneDayLag": "1.54 ",
    "oneDayLagDayWeight": "1",
    "oneDayLagDate": "2020-01-02",
    "twoDayLag": "1.55 ",
    "twoDayLagDayWeight": "2",
    "twoDayLagDate": "2019-12-31",
    "threeDayLag": "1.54 ",
    "threeDayLagDayWeight": "1",
    "threeDayLagDate": "2019-12-30",
    "fourDayLag": "1.53 ",
    "fourDayLagDayWeight": "3",
    "fourDayLagDate": "2019-12-27",
    "fiveDayLag": "1.52 ",
    "fiveDayLagDayWeight": "1",
    "fiveDayLagDate": "2019-12-26",
    "sixDayLag": "1.52 ",
    "sixDayLagDayWeight": "2",
    "sixDayLagDate": "2019-12-24",
    "sevenDayLag": "1.52 ",
    "sevenDayLagDayWeight": "1",
    "sevenDayLagDate": "2019-12-23",
    "eightDayLag": "1.53 ",
    "eightDayLagDayWeight": "3",
    "eightDayLagDate": "2019-12-20",
    "nineDayLag": "1.53 ",
    "nineDayLagDayWeight": "1",
    "nineDayLagDate": "2019-12-19",
    "tenDayLag": "1.53 ",
    "tenDayLagDayWeight": "1",
    "tenDayLagDate": "2019-12-18"
}

我需要根据天数创建对象的缩减/精简版本 - 例如,如果天数为“4”,则响应对象应如下...

{
    "date": "2020-01-04",
    "oneDayLag": "1.54 ",
    "oneDayLagDayWeight": "1",
    "oneDayLagDate": "2020-01-02",
    "twoDayLag": "1.55 ",
    "twoDayLagDayWeight": "2",
    "twoDayLagDate": "2019-12-31",
    "threeDayLag": "1.54 ",
    "threeDayLagDayWeight": "1",
    "threeDayLagDate": "2019-12-30",
    "fourDayLag": "1.53 ",
    "fourDayLagDayWeight": "3",
    "fourDayLagDate": "2019-12-27"
}

我可以编写大量代码(模型、服务、if-else 等的混合)来创建 1 到 10 之间的此类对象,但是在 Java 中是否有更优雅的方法来解决这个问题?

最佳答案

正如 holi-java 所写 - 使用数组。 示例:

{
  "date": "2020-01-04",
  "lags": [
    {
      "lag": "1.54 ",
      "lagDayWeight":"1",
      "date": "2020-01-02",
      "lagDay": "1"

    },
    {
      "lag": "1.55 ",
      "lagDayWeight":"2",
      "date": "2019-12-31",
      "lagDay": "2"
    }
  ]
}

关于Java 对象 - 如何动态创建对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60438190/

相关文章:

java - 为什么 Redis 缓存在我的 Spring Boot 应用程序中没有变空?

spring-boot - 让 Tomcat 7 在远程 CentOS 7.5 上运行

Docker compose spring boot redis 连接问题

java - 将输出流改回 system.out

当所有类实例超出范围时,Java 重置私有(private)静态成员

Azure AD、Angular Spa 和 Spring 微服务集成

java - ModelAndView 返回 null SpringBootTest

java - SocketChannel write( ) 返回没有错误,但实际上没有发送数据

java.lang.OutOfMemory错误: GC overhead limit exceeded facing this error while executing android project

Java从文本文件读取,在第21行出现错误