JavaScript删除JSON元素

3

我在一个PHP页面中有这个JSON字符串:

{
  "elements": [{
    "type": "pie",
    "alpha": 0.3,
    "animate": [{
      "type": "fade"
    }, {
      "type": "bounce",
      "distance": 5
    }],
    "start-angle": 0,
    "tip": "#val# de #total# #percent#",
    "colours": ["#d01f3c", "#356aa0", "#C79810"],
    "values": [{
      "value": 1,
      "label": "procesador amd sempron 140"
    }, {
      "value": 1,
      "label": "procesador sempron le130"
    }, {
      "value": 1,
      "label": "procesador amd a4-3300 x2"
    }, {
      "value": 1,
      "label": "procesador intel celeron g530"
    }]
  }],
  "title": {
    "text": "Procesadores, Reinicio",
    "style": "color: #356aa0; font-size: 20px"
  },
  "bg_colour": "#FFFFFF",
  "x_axis": null
}

我会这样称呼它:
$.getJSON("restart_proce.php", function(json)
{    
console.log(json);

我需要将它转换为这个格式:
[{\"value\": 1, \"label\": \"procesador amd sempron 140\" }, { \"value\": 1, \"label\": \"procesador sempron le130\" }, { \"value\": 1, \"label\": \"procesador amd a4-3300 x2\" }, { \"value\": 1, \"label\": \"procesador intel celeron g530\" } ]

我想删除这样的元素:

delete json.elements[3];

但是它并没有删除任何东西。我该怎样让它工作?

1
我认为你正在寻找Array.splice - m90
https://dev59.com/SU7Sa4cB1Zd3GeqPzwBQ - laxonline
1
“delete”会将数组元素设置为未定义,但不会删除该元素。请使用“splice”。当然,在此示例中,“elements”数组中只有1个元素,因此“json.elements [3]”没有访问任何内容。 - Chad
elements 属性中似乎只有一个元素在数组中。 - Asad Saeeduddin
4个回答

2

试试这个:

json.elements.splice(3, 1);

请参见:Array.splice

2

从数组中删除一个元素:

有几种方法。最通用的方法是使用splice方法:

data.items.splice(3, 1); // Removes three items starting with the 2nd,

splice会修改原始数组,并返回你删除的项目的数组。


1

console.log(json)之前直接修改数值即可。

json= json.elements[0].values

或者在 restart_proce.php 的php页面中,只需回显

echo json_encode($data['elements'][0]['values']); // if associative array is used.

0

试试这个:

var data = {"result":[
  {"FirstName":"Test1","LastName":"User","Email":"test@test.com","City":"ahmedabad","State":"sk","Country":"canada","Status":"False","iUserID":"23"},
  {"FirstName":"user","LastName":"user","Email":"u@u.com","City":"ahmedabad","State":"Gujarat","Country":"India","Status":"True","iUserID":"41"},
  {"FirstName":"Ropbert","LastName":"Jones","Email":"Robert@gmail.com","City":"NewYork","State":"gfg","Country":"fgdfgdfg","Status":"True","iUserID":"48"},
  {"FirstName":"hitesh","LastName":"prajapti","Email":"hitesh.prajapati@phptalent.com","City":"","State":"","Country":"","Status":"True","iUserID":"78"}
  ]
}
alert(data.result);
delete data.result[3];
alert(data.result);

正在工作 JSFiddle

或者您可以使用splice从数组中删除元素。


无法正常工作,因为它会把元素设置为未定义。虽然在某些“异常”情况下它能够工作,但是不能完全信任它。 - m90

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接