如何删除json对象中的json对象?
[
[
{"name":"formtype","value":"ordering"},
{"name":"extera_Ordering_json[id]","value":"1"}
],
[
{"name":"extera_Ordering_json[count]","value":"20"},
{"name":"coupon","value":""},
{"name":"formtype","value":"ordering"},
{"name":"extera_Ordering_json[id]","value":"2"}
],
[
{"name":"extera_Ordering_json[count]","value":"7"},
{"name":"coupon","value":"1"},
{"name":"formtype","value":"ordering"},
{"name":"extera_Ordering_json[id]","value":"3"}
],
[ {"name":"extera_Ordering_json[count]","value":"1"},
{"name":"coupon","value":"1"},
{"name":"formtype","value":"ordering"},
{"name":"extera_Ordering_json[id]","value":"4"}
]
]
我在ordering
现在我要删除
[ {"name":"extera_Ordering_json[count]","value":"1"},
{"name":"coupon","value":"1"},
{"name":"formtype","value":"ordering"},
{"name":"extera_Ordering_json[id]","value":"4"}
]
我的密钥是extera_Ordering_json[id]
(它不是唯一的)
我这样做:
ordering = JSON.parse(ordering);
var temp;
$.each(ordering, function(idx, obj)
{
if(obj.Ordering_json[id] != 4)// not works
{
temp[] = obj;
}
temp[] = obj
}
ordering = JSON.stringify(temp);
答案 0 :(得分:1)
您使用的是id而不是idx。试试这个
if(obj.Ordering_json[idx] != 4)
答案 1 :(得分:1)
你可以使用拼接方法
ordering = [ /*Array without json parsing*/ ];
var indexToDelete = 3;
ordering.splice( indexToDelete, 1);
// 1 indicates only one element from array
console.log(ordering);
第二个解决方案是你可以从数组中删除它
ordering = [ /*Array without json parsing*/ ];
var indexToDelete = 3;
delete ordering[ indexToDelete ];
console.log(ordering);
答案 2 :(得分:1)
"extera_Ordering_json[id]"
只是一个字符串,所以你需要迭代每个数组中的所有对象,找到那个字符串为name
的对象并检查同一个对象的value
< / p>
这是一个地图和过滤方法
var data = [
[
{"name":"formtype","value":"ordering"},
{"name":"extera_Ordering_json[id]","value":"1"}
],
[
{"name":"extera_Ordering_json[count]","value":"20"},
{"name":"coupon","value":""},
{"name":"formtype","value":"ordering"},
{"name":"extera_Ordering_json[id]","value":"2"}
],
[
{"name":"extera_Ordering_json[count]","value":"7"},
{"name":"coupon","value":"1"},
{"name":"formtype","value":"ordering"},
{"name":"extera_Ordering_json[id]","value":"3"}
],
[ {"name":"extera_Ordering_json[count]","value":"1"},
{"name":"coupon","value":"1"},
{"name":"formtype","value":"ordering"},
{"name":"extera_Ordering_json[id]","value":"4"}
]
]
var searchVal = 1
data=data.map(function(arr){
return arr.filter(function(o){
return o.name !== "extera_Ordering_json[id]" || +o.value !== searchVal
})
})
console.log(data)
答案 3 :(得分:1)
您可以在JSON数组上使用splice
方法删除特定索引处的元素:
var ordering = JSON.stringify([
[
{"name":"formtype","value":"ordering"},
{"name":"extera_Ordering_json[id]","value":"1"}
],
[
{"name":"extera_Ordering_json[count]","value":"20"},
{"name":"coupon","value":""},
{"name":"formtype","value":"ordering"},
{"name":"extera_Ordering_json[id]","value":"2"}
],
[
{"name":"extera_Ordering_json[count]","value":"7"},
{"name":"coupon","value":"1"},
{"name":"formtype","value":"ordering"},
{"name":"extera_Ordering_json[id]","value":"3"}
],
[ {"name":"extera_Ordering_json[count]","value":"1"},
{"name":"coupon","value":"1"},
{"name":"formtype","value":"ordering"},
{"name":"extera_Ordering_json[id]","value":"4"}
]
])
temp = JSON.parse(ordering);
temp.splice(3, 1)
ordering = JSON.stringify(temp);
console.log(ordering)
答案 4 :(得分:1)
在你的情况下extera_Ordering_json[id]
不是关键,它是值name
var ordering = [
[
{"name": "formtype", "value": "ordering"},
{"name": "extera_Ordering_json[id]", "value": "1"}
],
[
{"name": "extera_Ordering_json[count]", "value": "20"},
{"name": "coupon", "value": ""},
{"name": "formtype", "value": "ordering"},
{"name": "extera_Ordering_json[id]", "value": "2"}
],
[
{"name": "extera_Ordering_json[count]", "value": "7"},
{"name": "coupon", "value": "1"},
{"name": "formtype", "value": "ordering"},
{"name": "extera_Ordering_json[id]", "value": "3"}
],
[{"name": "extera_Ordering_json[count]", "value": "1"},
{"name": "coupon", "value": "1"},
{"name": "formtype", "value": "ordering"},
{"name": "extera_Ordering_json[id]", "value": "4"}
]
];
var temp = [];
$.each(ordering, function (key1, obj1) {
$.each(obj1, function (key2, obj2) {
if (obj2.name == 'extera_Ordering_json[id]' && obj2.value == 4) {
delete ordering[key1];
}
});
if(ordering[key1] != null){
temp.push(ordering[key1]);
}
});
console.log(JSON.stringify(temp));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
答案 5 :(得分:1)
这应该做你想要的:
var ordering = [
[
{"name":"formtype","value":"ordering"},
{"name":"extera_Ordering_json[id]","value":"1"}
],
[
{"name":"extera_Ordering_json[count]","value":"20"},
{"name":"coupon","value":""},
{"name":"formtype","value":"ordering"},
{"name":"extera_Ordering_json[id]","value":"2"}
],
[
{"name":"extera_Ordering_json[count]","value":"7"},
{"name":"coupon","value":"1"},
{"name":"formtype","value":"ordering"},
{"name":"extera_Ordering_json[id]","value":"3"}
],
[
{"name":"extera_Ordering_json[count]","value":"1"},
{"name":"coupon","value":"1"},
{"name":"formtype","value":"ordering"},
{"name":"extera_Ordering_json[id]","value":"4"}
]
];
var sVal = 4;
var indexToRemove = false;
ordering.forEach(function(element, index) {
element.forEach(function(subelement) {
if (subelement.name == "extera_Ordering_json[id]"
&& parseInt(subelement.value) == sVal){
indexToRemove = index;
}
});
});
if (false !== indexToRemove) {
ordering.splice(indexToRemove, 1);
}