如何更改json响应中的数据

时间:2019-09-17 15:18:47

标签: javascript json

我正在获取带有以下数据的jsonResponse:

[ 
   { 
      "date":"2019-02-15",
      "value":"5456"
   },
   { 
      "date":"2019-02-15",
      "value":"5456"
   },
   { 
      "date":"2019-02-15",
      "value":"5456"
   },
   { 
      "date":"2019-02-15",
      "value":"-5456"
   }
]

我需要将日期中的定界符从“-”更改为“ /”。我需要这样的日期:2019/03/14

我试图这样更改它们:

json.replace(/-/g, "/"); 

,它可以工作,但是有问题。如果由于某种原因,值数据为负-524。减号也会改变。

有什么方法可以更改定界符而不影响其他数据?

我需要保留jsonResponse,但要更改定界符。

3 个答案:

答案 0 :(得分:2)

您必须使用Array.prototype.map遍历数组并更改date

const response = [
  {
    date: "2019-02-15",
    value: "5456"
  },
  {
    date: "2019-02-15",
    value: "5456"
  },
  {
    date: "2019-02-15",
    value: "5456"
  },
  {
    date: "2019-02-15",
    value: "-5456"
  }
];

const result = response.map(obj => ({ ...obj, date: obj.date.replace(/-/g, "/") }));

console.log(result);

答案 1 :(得分:1)

  1. 使用Array.prototype.map遍历数组中的对象。

  2. 通过调用date使用String.prototype.split("-")分隔符将date字符串拆分为数组来格式化-属性。

  3. 然后通过调用/使用Array.prtotype.join("/")来加入数组:

const data = [ 
   { 
      "date":"2019-02-15",
      "value":"5456"
   },
   { 
      "date":"2019-02-15",
      "value":"5456"
   },
   { 
      "date":"2019-02-15",
      "value":"5456"
   },
   { 
      "date":"2019-02-15",
      "value":"-5456"
   }
];

//This function does not modify the original object or the array
function formatDate(){
  return data.map(o => ({...o, date: o.date.split("-").join("/")}));
}
console.log(formatDate(data));

答案 2 :(得分:0)

您可以尝试地图

let response = json.map(doc => doc.date.replace(/-/g, "/"))