Как добавить одно значение в массив JSON? - PullRequest
0 голосов
/ 30 июня 2011

Я новичок в мире интерфейса, и я обнаружил, что JSON удивителен, настолько прост и удобен в использовании. Но использовать JS для обработки этого - боль! Нет простого и прямого способа передать значение, проверить, существует ли оно, выполнить поиск, .... ничего!

и я не могу просто добавить одно единственное значение в массив json, у меня есть это:

loadedRecords = {}

я хочу сделать это:

loadedRecords.push('654654')
loadedRecords.push('11')
loadedRecords.push('3333')

Почему это так сложно ??? !!!

Ответы [ 7 ]

6 голосов
/ 30 июня 2011

Потому что это объект, а не массив.

Вы хотите это:

var = loadedRecords = []
loadedRecords.push('1234');

Теперь расскажу о JSON в JS:

не существует простого и прямого способа указать значение

JSON - это формат обмена данными, если вы изменяете данные, вы будете иметь дело с собственными объектами и массивами JS. И у нативных объектов JS есть все виды способов выдвигать значения и манипулировать темами.

проверить, существует ли он

Это просто. if (data.someKey) { doStuff() } проверит наличие ключа.

Поиск

Опять JSON декодирует в массивы и объекты, так что вы можете пройтись по дереву и найти вещи, которые вы могли бы с любой структурой данных.

ничего

Все. JSON просто переводит в нативные структуры данных для любого языка, который вы используете. В конце дня у вас есть объекты (или хэши / диспозитарии) и массивы, которые содержат строки чисел и логические значения. Именно из-за этой простоты JSON великолепен. «Функции», которые вы ищете, не являются частью JSON. Они являются частью языка, который вы используете для анализа JSON.

3 голосов
/ 30 июня 2011

Ну .push является функцией массива.

Вы можете добавить массив к вашему объекту, если хотите:

loadedRecords = { recs: [] };

loadedRecords.recs.push('654654');
loadedRecords.recs.push('11');
loadedRecords.recs.push('3333');

Что приведет к:

loadedRecords = { recs: ['654654', '11', '3333'] };
1 голос
/ 11 декабря 2017

Простой способ передать переменную в JS для формата JSON

var city="Mangalore";
var username="somename"

var dataVar = {"user": 0,
                "location": {
                    "state": "Karnataka",
                    "country": "India",  
                },
            }

            if (city) {
                dataVar['location']['city'] = city;
            }
            if (username) {
                dataVar['username'] = username;
            }
1 голос
/ 30 июня 2011

Вы можете помещать вещи только в массив, а не в объект JSON.Массивы заключены в квадратные скобки:

var test = ['i','am','an','array'];

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

var test = { };
test.sample = 'asdf';
test.value = 1245;

Теперь, если вы используетеинструмент, подобный FireBug для проверки этого объекта, вы можете увидеть, что он выглядит следующим образом:

test {
    sample = 'asdf,
    value = 1245
}
1 голос
/ 30 июня 2011

Если вы хотите передать массив, вам нужно создать массив, а не объект. Попробуйте:

loadedRecords = [] //note... square brackets
loadedRecords.push('654654')
loadedRecords.push('11')
loadedRecords.push('3333')
1 голос
/ 30 июня 2011

{} это не массив является литералом объекта, используйте вместо него loadedRecords = [];.

0 голосов
/ 30 июня 2011

Что не так с:

var loadedRecords = [ '654654', '11', '333' ];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...