Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/413.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用javascript删除Json行_Javascript_Json - Fatal编程技术网

使用javascript删除Json行

使用javascript删除Json行,javascript,json,Javascript,Json,我的API检索Json,如下所示: { "name": "API", "count": 30, "newdata": true, "lastrunstatus": "success", "thisversionstatus": "success", "thisversionrun": "Mon Sep 07 2015 20:31:07 GMT+0000 (UTC)", "results": { "collection1": [ { "name": "Item1",

我的API检索Json,如下所示:

{
 "name": "API",
 "count": 30,
 "newdata": true,
 "lastrunstatus": "success",
 "thisversionstatus": "success",
 "thisversionrun": "Mon Sep 07 2015 20:31:07 GMT+0000 (UTC)",
 "results": {
 "collection1": [
  {
    "name": "Item1",
    "power": "210",
    "name": {
      "href": "http://picture.item42.com/item42.html",
      "text": "Hammer of god"
    },
    "desc": "Iron Hammer",
    "index": 1,
    "url": "http://picture.item42.com/"
  },
  {
      "name": "Item2",
    "power": "230",
    "name": {
      "href": "http://picture.item42.com/item43.html",
      "text": "Sword of god"
    },
    "desc": "Iron sword",
    "index": 1,
    "url": "http://picture.item43.com/"
  }
 ]
}
我想删除每一行的“url”,并删除le“href”属性,使名称具有“name”:“上帝之锤”

我尝试了以下方法和其他许多方法(删除url的第一步): 数据包含我复制的Json

function transform(data) {
var yourArray = data.results.collection1;
    var p = 0;
    var i = 0;
    var destArr=[];
        var srcArr=yourArray;
        for(i in srcArr){ 
         if(srcArr[i].url) 
            destArr[p]=srcArr[i];
            p++;
      }
    srcArr=destArr;
  return srcArr;
}
也许使用data.results.collection1.filter更好?
实际上,我的代码返回的json没有标题,但仍然有url行

使用
delete
关键字从json中删除属性

var jsonObj = JSON.parse('your json string');
delete jsobObj.whateveryYourpropertyName;

使用
delete
关键字从JSON中删除属性

var jsonObj = JSON.parse('your json string');
delete jsobObj.whateveryYourpropertyName;

只需浏览您的
json.result.collection1
并删除每个
名称和
url上的
href

for(item in json.results.collection1) {
    delete json.results.collection1[item].name.href
    delete json.results.collection1[item].url;
}

只需浏览您的
json.result.collection1
并删除每个
名称和
url上的
href

for(item in json.results.collection1) {
    delete json.results.collection1[item].name.href
    delete json.results.collection1[item].url;
}

您应该使用该方法实现您想要实现的目标: 其中,
data
是您的json对象:

data.results.collection1.forEach(function(el) {
   delete el.url
   delete el.name.href
});
如果需要迭代多个集合,您只需使用第二个forEach循环。

您应该使用该方法来实现以下目标: 其中,
data
是您的json对象:

data.results.collection1.forEach(function(el) {
   delete el.url
   delete el.name.href
});
如果需要迭代多个集合,只需使用第二个forEach循环即可。

请尝试以下操作:

jsonData.results.collection1.map(function(obj, index){
  delete obj.url;
  obj.name = obj.name.text;
  return obj;
});
console.log(jsonData);
请尝试以下操作:

jsonData.results.collection1.map(function(obj, index){
  delete obj.url;
  obj.name = obj.name.text;
  return obj;
});
console.log(jsonData);

如何将两个同名键“name”@user1386579您的右侧不能有两个
name
,在这种情况下发生的是
name
的值取对象中最后一项的值。因此,对于
collection1[0]
而言,
name
的值应该是:
{href:http://picture.item42.com/item42.html,文字:“上帝之锤”}
。怎么可能是两个同名的键“name”@user1386579您的右边不能有两个
name
,在这种情况下,
name
的值取对象中最后一项的值。因此,对于
collection1[0]
而言,
name
的值应该是:
{href:http://picture.item42.com/item42.html“,文字:“上帝之锤”}
。感谢您对多个系列的建议,它很好地发挥了作用,对于多个集合的建议很有效,为什么要将新的JSON保存到
finalData
,然后覆盖它?这似乎不必要地复杂。为什么要将新的JSON保存到
finalData
,然后覆盖它?这似乎不必要地复杂。