【问题标题】:restAPI- how to format JSON valuerest API - 如何格式化 JSON 值
【发布时间】:2018-11-01 01:15:30
【问题描述】:

我正在从我的服务器获取 JSON 值,它运行良好。但我想自定义我的 JSON 值。我有两个问题:

首先,当我得到区域值时,我得到的是["USA"],["Mexico"],["Canada"]。有没有办法可以忽略双引号/括号,而只获取 USA, Mexico, Canada 这样的字符串值?

其次,当我得到 regDate 值时,我会得到像 2018-10-31T07:53:12.000Z 这样的整个数据,我可以忽略一些值并像 2018-10-31 07:53 这样得到它吗?

{
  "result": "ok",
  "data": [
      {
        "idx": 1,
        "region": "[\"USA \", \"Mexico \", \"Canada \"]",
        "regDate": "2018-10-31T07:53:12.000Z"
      }
   ]
}

【问题讨论】:

  • 您能展示一下到目前为止您在提取区域和日期值方面所做的工作吗?
  • 那个 JSON 正确吗?你的 region 是另一个 JSON 值,有点浪费。

标签: javascript jquery arrays json object


【解决方案1】:

您的region 数据似乎是双重编码的。在 javascript 中,您需要对其进行解码,例如

const response = {
  "result": "ok",
  "data": [
      {
        "idx": 1,
        "region": "[\"USA \", \"Mexico \", \"Canada \"]",
        "regDate": "2018-10-31T07:53:12.000Z"
      }
   ]
};

const regions = JSON.parse(response.data[0].region);

时间格式化可以使用Javascript内置的Date类型,如..

const regDate = new Date(response.data[0].regDate);
const regDatestr = 
  regDate.getUTCFullYear() + '-' +
  regDate.getUTCMonth() + '-' +
  regDate.getDate() + ' ' +
  regDate.getUTCHours() + ':' +
  regDate.getUTCMinutes()
;

如果您需要比内置功能更多的功能,我会推荐date-fns

【讨论】:

    【解决方案2】:

    您可以将 JSON 查询的结果保存到变量 data。然后你会这样做:

    var countries = "";
    
    for (var i = 0; i < data[0].region.length; i++) {
        countries += data[0].region[i];
    }
    
    var time = data[0].regDate.split("000Z");
    

    【讨论】:

      猜你喜欢
      • 2014-11-15
      • 2021-05-16
      • 2017-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-09
      • 2016-09-16
      • 1970-01-01
      相关资源
      最近更新 更多