在JavaScript中添加对象

时间:2009-01-29 14:39:24

标签: javascript json

我有一个JSON字符串,我已经转换为一个对象:

data=eval("(" + jsonString + ")");

我可以访问所有位并显示它们没有问题。 问题是如何添加到对象。

例如:

data.car[0].name = "civic";<BR>
data.car[1].name = "s2000";

所以,如果我有一个用于添加新车的输入框,我该如何将其添加到车载阵列。?

干杯

5 个答案:

答案 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中有两种方法可以向对象添加属性。

  1. 直接

    data.car[0].name = 'jose'; 
    
  2. 像数组一样进行访问:

    data.car[0]['name'] = 'jose'; 
    
  3. 因此,如果您有一个名称的字段和一个您可以创建的值的字段,那么就像:

    <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})
}