添加到對象我有一個JSON字符串,我已經轉換成一個對象,具有:在JavaScript
data=eval("(" + jsonString + ")");
我可以訪問所有的位,沒有問題顯示出來。 問題是我如何添加到對象。
例如:
data.car[0].name = "civic";<BR>
data.car[1].name = "s2000";
所以,如果我有一個輸入框中添加一個新的車,我怎麼添加到車陣?
乾杯
添加到對象我有一個JSON字符串,我已經轉換成一個對象,具有:在JavaScript
data=eval("(" + jsonString + ")");
我可以訪問所有的位,沒有問題顯示出來。 問題是我如何添加到對象。
例如:
data.car[0].name = "civic";<BR>
data.car[1].name = "s2000";
所以,如果我有一個輸入框中添加一個新的車,我怎麼添加到車陣?
乾杯
您應該能夠使用您發佈的語法。只需通過賦值,Javascript就可以將屬性添加到對象中。由於JSON字符串僅作爲普通對象進行分析,因此您可以指定一個新屬性並分配所需的值。
使用你上面的例子,是這樣的:
data.car[0] = { name: "civic" };
data.car[1] = { name: "s2000" };
這將一個新的對象分配給數組元素,一個屬性「名」。 Alertnatively,爲略偏代碼複用:
function car(name) {
this.name = name
}
data.car[0] = new car("civic");
data.car[1] = new car("s2000");
這將新車添加到陣列中: -
data.car.push({name: "Zafira"});
順便說一句,你要小心使用eval解析JSON,它可能會導致你的代碼開放注入攻擊。
Assuiming你有一個輸入框,你可以附加一個模糊的事件(或當你想添加的車)
function addCar(carname){
data.car.push({name:carname})
}
在javascript中有2種方式來添加屬性的對象。
採用直接
data.car[0].name = 'jose';
Acessing就像一個數組:
data.car[0]['name'] = 'jose';
所以,如果你有一個字段的名稱和一個值,你可以創建然後就像:
<input type="text" id="name" />
<input type="text" id="value" />
<script type="text/javascript">
var d = function(id) {
return document.getElementById(id);
}
data.car[0][d("name").value] = d("value").value
</script>
這將意味着雖然數組的成員會有不同的構造函數,這可能是有用的,否則它可能會導致一個問題。 – AnthonyWJones 2009-01-29 14:49:39