在javascript中拆分json数组不起作用

时间:2017-05-31 04:50:26

标签: javascript json

我从ajax获得响应为json:

{"checkin_date":["2017-05-11","2017-05-18","2017-05-23","2017-05-25"]}

我需要在诸如2017-05-11,2017-05-18等的javascript中分隔这些值。

我在javascript中尝试过分割功能,但失败了。我如何实现它?

我需要在循环中单独使用日期。

5 个答案:

答案 0 :(得分:2)

使用JSON.parse方法解析JSON字符串,并获取保存数组的属性。

var dates = JSON.parse(respose_data).checkin_date
// or
var dates = JSON.parse(respose_data)['checkin_date']

如果它是一个对象,则直接访问该属性。

var dates = respose_data.checkin_date
// or
var dates = respose_data['checkin_date']

UPDATE:现在使用Array#forEach或简单的for循环迭代数组。

dates.forEach(function(v){
   console.log(v);
})

// or
for(var i = 0;dates.length < i; i++){
   console.log(dates[i]);
})

答案 1 :(得分:1)

您只需使用JSON的方法解析。之后,您将收到属性&#34; checkin_date&#34;的数组值。只需将它用作普通数组即可。请参阅以下代码:

&#13;
&#13;
var json = '{"checkin_date":["2017-05-11","2017-05-18","2017-05-23","2017-05-25"]}';
var result = JSON.parse(json);
var checkin_date = result['checkin_date'];
for(var i=0; i<checkin_date.length; i++){
  console.log(checkin_date[i]);
}
&#13;
&#13;
&#13;

答案 2 :(得分:0)

您可以使用箭头功能执行简单的解决方案:

const json = {"checkin_date":["2017-05-11","2017-05-18","2017-05-23","2017-05-25"]}

json.checkin_date.map((date) => date)

如果您需要在ES6之前的JavaScript上使用它,请执行以下操作:

var json = {"checkin_date":["2017-05-11","2017-05-18","2017-05-23","2017-05-25"]}

json.checkin_date.map(function(date) { return date })

两种方式都会返回循环中的所有日期。

答案 3 :(得分:0)

你可以:

  • 使用JSON.parse()将您的请求内容解析为JavaScript对象。
  • 获取包含带有日期列表的数组的属性checkin_date
  • 循环数组并执行每个日期所需的任何内容。

let respose_data = '{"checkin_date":["2017-05-11","2017-05-18","2017-05-23","2017-05-25"]}';
let dates = JSON.parse(respose_data).checkin_date;
dates.forEach(date=> console.log(date))

有关JSON.parse()

的更多信息

答案 4 :(得分:0)

如果需要将每个值循环作为日期,首先需要转换值。看看:

var dates = {"checkin_date":["2017-05-11","2017-05-18","2017-05-23","2017-05-25"]};

dates
  .checkin_date
  .map(date => new Date(date)) // here you convert the string dates to values of type Date
  .forEach(date => console.log(date)) // here you loop through every Date and do whatever you want, in this case I just logged the output.