首页 > 解决方案 > 如何从 JSON 中提取日期,其中年、日和月作为单独的字段,格式为 yyyy-mm-dd

问题描述

我是 JSON 新手,为了获取用户的交易详细信息,我正在从 API 的 JSON 响应中对 Web 服务之一进行 API 调用,交易日期如下

   {
    "trasanction_date": {
        "year": 2021,
        "month": 6,
        "day": 16
    }
}

我需要将上述日期转换为 yyyy-mm-dd 格式以将其插入 Cassandra。现在我的转换方式是,我正在从上面的字符串创建新的 JSONObject,比如

JSONObject trasaction = new JSONObject("{\"trasanction_date\":{\"year\":2021,\"month\":6,\"day\":16}}");

JSONObject date = trasaction.get("trasaction_date");

String year = date.getString("year");
String month = date.getString("month");
String day = date.getString("day");

//concatenating the final result to frame the date
String transactionDate = year+month+Day

有没有一种方法可以有效地将上述 JSON 转换为 yyyy-mm-dd 格式,而无需提取和连接字符串。请提前帮助上述感谢。

标签: javajsondate

解决方案


CreateTransactionDate.java类女巫包含三个字符串字段year, month,day和 getter 和 setter。然后,创建TransactionDetails.java具有类型属性的类TransactionDate,并使用gson库将 JSON 字符串转换为 java 对象。你可以看看这篇文章,看看如何使用gson

然后在TransactionDate.java类中,您可以将toString()方法覆盖为如下所示:

@Override
String toString() {
  return this.year + " " + this.month + " " + this.day;
}

最后,除了返回transactionDate字符串,您还可以从中获取TransactionDate对象TransactionDetails并返回它的字符串表示形式。


推荐阅读