JSON и jQuery- добавление элемента из переменной?

12
J
На сайте с 02.02.2009
Offline
53
#11
neolord:
Перед передачей массива функции stringify с ним ничего не надо делать. Но ваще лучше не полагаться на наличие хорошей поддержки JSON в браузере и юзать например http://code.google.com/p/jquery-json/

$.toJSON тоже ничего не получается - такой же как stringify результат :(

Я сразу хочу прояснить цель - мне надо создать большой массив, один из элементов которого будет хешом.

Собственно - и потом его сеарилизовать. Я нашёл способ, который описал в топике, но он мне не нравится и я хочу узнать - как можно сделать более правильно :))

[Удален]
#12

что такое "хеш" ?

J
На сайте с 02.02.2009
Offline
53
#13
neolord:
что такое "хеш" ?

Сорри, я на Perl пишу и привык называть ассоциативный массив хешом :)

Ассоциативный массив - если вдруг что - это абстрактный тип данных (интерфейс к хранилищу данных), позволяющий хранить пары (ключ, значение) и поддерживающий операции добавления пары, а также поиска и удаления пары по ключу.

[Удален]
#14

Т.е. вам нужен двумерный массив?

Из моих экспериментов с prototype выяснилось, что массив одновременно с числовыми и строковыми ключами не сериализуется в JSON как надо, так что лучше делать исключительно ассоциативный массив. Получается как то так

var oData={}

oData['property_name']='property_value'

А чтобы добавить вложенный массив

oData['property_name']={name:'value',name2:'value2'...}

ну или oData['property_name']={} а потом поштучно заполнять через oData['property_name']['...']='...'

J
На сайте с 02.02.2009
Offline
53
#15
neolord:
Т.е. вам нужен двумерный массив?
Из моих экспериментов с prototype выяснилось, что массив одновременно с числовыми и строковыми ключами не сериализуется в JSON как надо, так что лучше делать исключительно ассоциативный массив. Получается как то так
var oData={}
oData['property_name']='property_value'

А чтобы добавить вложенный массив
oData['property_name']={name:'value',name2:'value2'...}
ну или oData['property_name']={} а потом поштучно заполнять через oData['property_name']['...']='...'

Ну я примерно так и сделал - в начале топика прям описал

var tmp = {};

$("input[class='select']").each(function(i){

tmp[$(this).attr('name')] = $(this).attr('value');

});

data.oVar = tmp;

Засада в том, что я не хочу знать заранее какие там будут элементы

А проблема заключается в том, что мне не нравится присвоение такое, НО если сделать data.oVar[x] = y - это не придёт в сериализованную строку :(

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий