使用javascript删除Json行
我的API检索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",
{
"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
,然后覆盖它?这似乎不必要地复杂。