我有一个像这样得到json响应的文件:
{
total": 86,
"data": [
{
"Id": 2,
"Name": "User One",
"Shipping": 1,
"Created": "25 March 2017"
},
{
"Id": 3,
"Name": "User Two",
"Shipping": 2,
"Created": "25 March 2017"
},
{
"Id": 4,
"Name": "User Three",
"Shipping": 3,
"Created": "26 March 2017"
}
]
}
我想运行此结果并将所有Shipping值更改为:
1个邮局
2 PostNet
3 Courier
在我的代码中我做了:
$.each(data.data, function () {
$.each(this, function (key, value) {
if(key == 'Shipping') {
switch(value) {
case 2:
? = 'PostNet';
break;
case 2:
? = 'Courier';
break;
default:
? = 'Post Office';
break;
}
}
});
});
我不知道如何获得正确的数组键,以便我可以更改它,我把它放在哪里?。
有人可以帮忙吗?
答案 0 :(得分:1)
你很亲密。
循环通过JSON object
。当密钥匹配字符串时,请创建switch
。匹配其中一个值后,将父循环值更改为所需的值。
将您的JS改为:
$.each(data.data, function (key, value) {
$.each(this, function(k, v) {
if(k == 'Shipping') {
switch(v) {
case 1:
value.Shipping = 'PostNet';
break;
case 2:
value.Shipping = 'Courier';
break;
default:
value.Shipping = 'Post Office';
break;
}
}
});
});
https://jsfiddle.net/zeopL56n/2/ (请参阅控制台日志)
答案 1 :(得分:0)
你必须这样做:
$.each(data.data, function () {
switch(this.Shipping) {
case 1:
this.Shipping='PostNet';
break;
case 2:
this.Shipping='Courier';
break;
default:
this.Shipping='Post Office';
}
});
查看控制台以查看更新的对象。
这是fiddle