2015-10-07 134 views
1

假設我有一個JSON數組,如:如何修改或更改JSON數組中的特定對象?

[{ 
    "box": "box1",  
    "parent": [{ 
     "id": "box0" 
    }], 
    "child": [{ 
     "id": "box2" 
    }] 
},{ 
    "box": "box2", 
    "parent": [{ 
     "id": "box1" 
    }], 
    "child": [{ 
     "id": "box3" 
    },{ 
     "id": "box4" 
    }] 
}] 

現在假設我想換一個價值parentidbox2然後我怎麼做。

如何特別改變特定值?

+0

什麼反序列化這個JSON字符串到一個對象,改變對象的值,然後序列化這個對象? – PMerlet

+0

任何示例都會有所幫助 – Arti

回答

1

var arr = [{ 
 
    'box': 'box1', 
 
    'parent': [{ 
 
    'id': 'box0' 
 
    }], 
 
    'child': [{ 
 
    'id': 'box2' 
 
    }] 
 
}, { 
 
    'box': 'box2', 
 
    'parent': [{ 
 
    'id': 'box1' 
 
    }], 
 
    'child': [{ 
 
    'id': 'box3' 
 
    }, { 
 
    'id': 'box4' 
 
    }] 
 
}]; 
 

 
arr = arr.map(function(box) { 
 
    if (box.box === 'box2') { 
 
    box.parent = [{ id: 'box0' }]; 
 
    } 
 
    
 
    return box; 
 
     
 
}); 
 

 
console.log(arr);

+0

感謝您的快速回復。但這是爲了增加一個新的價值。我也想編輯現有的值並刪除一個特定的值。 – Arti

+0

您已經可以對已過濾的框對象執行任何操作。不要依賴所有你需要做的事情。 – Orland

0

你可以反序列化這個JSON字符串轉換爲JavaScript對象,修改對象的屬性,然後序列化的JavaScript對象轉換成JSON字符串:

var json = '[{"box":"box1","parent":[{"id":"box0"}],"child":[{"id":"box2"}]},{"box":"box2","parent":[{"id":"box1"}],"child":[{"id":"box3"},{"id":"box4"}]}]'; 
var obj = JSON.parse(json); 
obj[1].parent[0].id = "whatever"; 
var newjson = JSON.stringify(obj);