Добавление к объекту в JavaScript - PullRequest
1 голос
/ 29 января 2009

У меня есть строка JSON, которую я преобразовал в объект:

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

Я могу получить доступ ко всем битам и отображать их без проблем. Вопрос в том, как добавить объект.

Например:

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

Итак, если у меня есть поле ввода для добавления нового автомобиля, как мне добавить это к массиву автомобилей?

Приветствия

Ответы [ 5 ]

1 голос
/ 29 января 2009

В javascript есть 2 способа добавить свойство к объекту.

  1. С прямым

    data.car[0].name = 'jose'; 
    
  2. Доступ, как массив:

    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> 
1 голос
/ 29 января 2009

Используя ваш пример выше, что-то вроде:

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 голос
/ 29 января 2009

Это добавит новую машину в массив: -

data.car.push({name: "Zafira"});

Кстати, вы должны быть осторожны с использованием eval для анализа JSON, это может привести к тому, что ваш код будет открыт для атаки с использованием инъекций.

0 голосов
/ 29 января 2009

Предполагая, что у вас есть поле ввода, вы можете добавить событие размытия (или всякий раз, когда вы хотите добавить автомобиль)

function addCar(carname){
    data.car.push({name:carname})
}
0 голосов
/ 29 января 2009

Вы должны быть в состоянии использовать синтаксис, который вы опубликовали. Javascript позволяет добавлять свойства объекта только по присваиванию. Поскольку строка JSON просто анализируется как обычный объект, вы можете просто указать новое свойство и присвоить нужные значения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...