我有一个JSON字符串,我已经转换为一个对象:
data=eval("(" + jsonString + ")");
我可以访问所有位并显示它们没有问题。 问题是如何添加到对象。
例如:
data.car[0].name = "civic";<BR>
data.car[1].name = "s2000";
所以,如果我有一个用于添加新车的输入框,我该如何将其添加到车载阵列。?
干杯
答案 0 :(得分:1)
使用上面的示例,例如:
data.car[0] = { name: "civic" };
data.car[1] = { name: "s2000" };
这将为数组元素分配一个新对象,其中一个属性为“name”。警告,重新使用一些代码:
function car( name) {
this.name = name
}
data.car[0] = new car("civic");
data.car[1] = new car("s2000");
答案 1 :(得分:1)
这会在阵列中添加一辆新车: -
data.car.push({name: "Zafira"});
顺便说一句,你要小心使用eval来解析JSON,它可能会导致代码打开注入攻击。
答案 2 :(得分:1)
在javascript中有两种方法可以向对象添加属性。
直接
data.car[0].name = 'jose';
像数组一样进行访问:
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>
答案 3 :(得分:0)
您应该能够使用您发布的语法。 Javascript允许您通过赋值向对象添加属性。由于JSON字符串只是被解析为普通对象,因此您只需指定一个新属性并指定所需的值即可。
答案 4 :(得分:0)
假设您有一个输入框,您可以附加模糊事件(或者您希望添加汽车时)
function addCar(carname){
data.car.push({name:carname})
}