Как представить обнуляемый объект JSON в виде одной строки? - PullRequest
0 голосов
/ 08 января 2012

В моем файле JavaScript есть объект json, содержащий

"qs": {}

, который, когда я сохраняю его в базе данных, становится:

[object Object]

В других случаях тот же объект выглядит так:

"qs":{"id": "stackoverflow"}

или это:

"qs":{"id": "stackoverflow", "location": "USA"}

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

Каков наилучший способ сделать это с полем, которое может быть нулевым в определенные моменты времени (как указано выше)?

Ответы [ 3 ]

1 голос
/ 08 января 2012

Вы можете преобразовать его в строковое представление (т. Е. Фактический JSON; у вас есть литерал объекта , который отличается от JSON) и использовать его. Вы можете сделать это, используя JSON.stringify, прибегая к одной из доступных альтернатив.

1 голос
/ 08 января 2012

Возможно, вы захотите использовать stringify для преобразования объекта в строку.

Также {} не является нулем, это пустой объект. "qs" : null равно нулю.

0 голосов
/ 08 января 2012

Стандартные функции JSON будут обрабатывать все это прозрачно для вас (включая нулевые и пустые объекты).При работе с вашими данными в JavaScript вы не должны работать со строкой JSON.Вместо этого сначала преобразуйте JSON из строки в переменную JavaScript.Когда вы будете готовы снова зафиксировать данные в базе данных, снова преобразуйте их из переменной JavaScript в строку JSON:

// initialise a variable with the string from the database
dbData = '{"id": "stackoverflow", "location": "USA"}';

// initialise a JavaScript object with the data from the database
jsData = JSON.parse(dbData);

// when ready to put the string back into the database convert the JS object to a string
dbDate = JSON.stringify(jsData);
...