Вместо того, чтобы идти от строки json и использовать $ .parseJSON, мне нужно взять мой объект и сохранить его в переменной как строку, представляющую json.
(Библиотека, с которой я имею дело, ожидает искаженный тип json, поэтому мне нужно возиться с ним, чтобы заставить его работать.)
Какой лучший способ сделать это?
Изменить: Вы должны используйте библиотеку json2.js от Дугласа Крокфорда вместо реализации приведенного ниже кода. Он предоставляет некоторые дополнительные функции и лучшую/старую поддержку браузера.
Загрузите файл json2.js с: https://github.com/douglascrockford/JSON-js
// implement JSON.stringify serialization
JSON.stringify = JSON.stringify || function (obj) {
var t = typeof (obj);
if (t != "object" || obj === null) {
// simple data type
if (t == "string") obj = '"'+obj+'"';
return String(obj);
}
else {
// recurse array or object
var n, v, json = [], arr = (obj && obj.constructor == Array);
for (n in obj) {
v = obj[n]; t = typeof(v);
if (t == "string") v = '"'+v+'"';
else if (t == "object" && v !== null) v = JSON.stringify(v);
json.push((arr ? "" : '"' + n + '":') + String(v));
}
return (arr ? "[" : "{") + String(json) + (arr ? "]" : "}");
}
};
var tmp = {one: 1, two: "2"};
JSON.stringify(tmp); // '{"one":1,"two":"2"}'
Код с: http://www.sitepoint.com/blogs/2009/ 19/08/javascript-json-serialization/
Вы можете преобразовать JSON в объект, а затем создать искаженный JSON из объекта ajavscript. Это может быть не лучшая производительность, хотя.
В противном случае, если вам нужно внести очень небольшие изменения в строку, просто обработайте ее как строку и измените ее с помощью стандартного javascript.