2012-06-06 4 views
50

Есть ли хороший способ кодировать объект JavaScript как JSON?Как кодировать объект JavaScript как JSON?

У меня есть список пар ключ-значение ... где имя от флажка, и значение является либо истинным или ложным в зависимости от того флажок установлен или нет:

var values = {}; 
$('#checks :checkbox').each(function() { values[this.name]=this.checked; }); 

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

Кто-нибудь знает решение?

+1

Там нет такого понятия, как объект JSON. Вы пытаетесь сериализовать значения в json или пытаетесь передать значения в объект JavaScript? –

+0

Я хочу, чтобы создать json-файл для хранения значений флажков, чтобы выбор пользователей сохранялся в файле cookie. Я новичок в json, поэтому я не знаю, что я хочу –

+2

возможный дубликат [хранения и извлечения объектов json в/из файла cookie] (http://stackoverflow.com/questions/5501968/storing-and-retrieving-json -объект-to-from-a-cookie), [сериализовать форму json и хранить в файле cookie] (http://stackoverflow.com/q/5458736/1048572) и [Как сохранить этот объект JSON в качестве файла cookie и прочитайте его в javascript в vanilla?] (http://stackoverflow.com/q/3252400/1048572) – Bergi

ответ

100

Я думаю, что вы можете использовать JSON.stringify:

// after your each loop 
JSON.stringify(values); 
+1

Я положил это в alert(), но ничего не появляется –

+0

@ daniellanger - на основе вашего комментария, это ответ. Вам нужно будет выполнить некоторую отладку, чтобы понять, почему вещи не отображаются –

+0

, так как я могу сохранить это в файле/сохранить его как файл cookie? –

23

Все основные браузеры теперь включают в себя нативный JSON кодирования/декодирования.

// To encode an object (This produces a string) 
var json_str = JSON.stringify(myobject); 

// To decode (This produces an object) 
var obj = JSON.parse(json_str); 

Обратите внимание, что будут закодированы только действительные данные JSON. Например:

var obj = {'foo': 1, 'bar': (function (x) { return x; })} 
JSON.stringify(obj) // --> "{\"foo\":1}" 

Допустимые типы JSON являются: объекты, строки, числа, массивы, true, false и null.

Некоторые JSON ресурсы:

+0

Является ли мой хэш действительным данные JSON? –

+1

Ну, они называются «объектами» в javascript. Но да, логические значения могут быть представлены в JSON. – vezult

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