2011-12-29 8 views
1

Я новичок в JSON и вот мой первый JSON объектКак добавить еще один объект к этому объекту

var First = { 
       "a" : [{}] 
      }; 

Я хочу добавить ниже объект «а» на «Первый»

var a = {"1":"One","2":"Two"}; 

Я попытался ниже код

First.a[First.a.length-1] = a; 

не working.I предположить, что есть некоторые синтаксические ошибки в этом. Пожалуйста помоги мне с этим.

+2

Я удалил теги '' jquery' и json', так как ни один не совсем уместным к этому вопросу, и добавил 'javascript'. – Guffa

+0

Ознакомьтесь с [json.org] (http://json.org/), чтобы лучше понять, что такое JSON и как он работает. – zzzzBov

ответ

1

это вы хотите добавить, что вы ищете First.a.push(a) , если вы хотите заменить последний элемент:

First.a[First.a.length-1] = a; 

, если вы хотите добавить а к последнему элементу:

First.a[First.a.length-1]['a'] = a; 

или

First.a[First.a.length-1].a = a; 

, если это не ни один из них, пожалуйста, добавить ожидаемое json в вашем вопросе.

+1

OMG, Можем ли мы нажимать, когда мы нажимаем массивы? – Exception

+1

@Sol, 'a' - массив, поэтому вы можете использовать' push'. '[]' является синтаксисом литерала массива, '{}' является синтаксисом литерала объекта. – zzzzBov

+1

Является ли это ироничным, или у меня нет вопросов? редактирование: хорошо, ваша проблема была в том, что вы не видели, что вы были в массиве :) – Guillaume86

1

Вы должны использовать Array.push().

var myObject = { 
    myArrayOfObjects: [] 
}; 

var newObject = { 
    1: '1', 
    2: '2' 
}; 

myObject.myArrayOfObjects.push(newObject); 
+0

Спасибо за ваш ответ :-) – Exception

+0

push будет делать всегда нижнюю часть существующего массива, как добавить элемент в верхнюю часть существующего массива? – manny

+0

использование [Array.unshift()] (https: //developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/unshift) – jbabey

1

Это не «объект JSON». Таких вещей нет. Это объект Javascript.

Он не работает так, как вы ожидаете, поскольку вы не добавляете элемент в массив, вы заменяете последний элемент.

Просто используйте метод push добавить элемент в конец массива:

First.a.push(a); 
+0

Я думал, что объект JSON (хотя и избыточный) был тем же, что и объект javascript? – jbabey

+1

@jbabey: Это не так. JSON - текстовый формат *, который в основном используется для отправки данных (или из) кода клиента Javascript. Однако он может использоваться в среде, где вообще нет Javascript. – Guffa

+0

Да, вероятно, вопрос должен быть отредактирован – Guillaume86

Смежные вопросы