我正在尝试遍历一些json。 json结果如下:
{
"items": [{
"metafield1": "May 22 2019"
}, {
"metafield1": null
}, {
"metafield1": null
}, {
"metafield1": "May 20 2019"
}]
}
我在ajax调用中得到了这个信息,然后分配了一个变量,然后检查该变量是否存在。
$.ajax({
type: 'GET',
url: '/cart?view=alternate.json',
success: function(result) {
var obj = JSON.parse(result);
var del_date = obj.metafield1;
if (del_date !== null) {
// do something
}
}
})
起初,我在json中只有一个项目,所以工作正常,但是现在您可以看到我有多个项目,因此我需要遍历它们并最终进行比较,因此基本上我需要存储每个项目作为变量。 任何想法如何做到这一点?
答案 0 :(得分:0)
您可以使用[]运算符像这样使用map函数来处理您的字符串
var string = '[{ "metafield1": "May 22 2019" } , { "metafield1": null } ,
{ "metafield1": null } , { "metafield1": "May 20 2019" } ]';
var metafields = JSON.parse(string).map(function(v){ return v['metafield1']; });
console.log(metafields);
已用新对象更新
let result = {
"items": [{
"metafield1": "May 22 2019"
}, {
"metafield1": null
}, {
"metafield1": null
}, {
"metafield1": "May 20 2019"
}]
};
string = JSON.stringify(result.items);
var metafields = JSON.parse(string).map(function(v){ return v['metafield1']; });
console.log(metafields);
let result = {
"items": [{
"metafield1": "May 22 2019"
}, {
"metafield1": null
}, {
"metafield1": null
}, {
"metafield1": "May 20 2019"
}]
};
//console.log(JSON.stringify(result.items));
//var string = '[{ "metafield1": "May 22 2019" } , { "metafield1": null } , { "metafield1": null } , { "metafield1": "May 20 2019" } ]';
string = JSON.stringify(result.items);
var metafields = JSON.parse(string).map(function(v){ return v['metafield1']; });
console.log(metafields);
答案 1 :(得分:0)
这应该可以工作:
// we set a variable x = to your JSON variable
var x = {
"items": [{
"metafield1": "May 22 2019"
}, {
"metafield1": null
}, {
"metafield1": null
}, {
"metafield1": "May 20 2019"
}]
};
// we update x to be equal to your item field from the object, x is now an array instead of an object
x = x["items"];
for (var i of x) {
if (i.metafield1 !== null) {
console.log(i.metafield1);
// your code here
}
}