JS JSONオブジェクトを文字列に変換


ie 6,7はJSONをサポートしていないため.stringify(json)、私たちは自分でもう一つの関数を書いてこの方法を置き換えるしかありません.コードは次のとおりです.
 
function JsonToStr(o) {
var arr = [];
var fmt = function(s) {
if (typeof s == 'object' && s != null) return JsonToStr(s);
return /^(string|number)$/.test(typeof s) ? "'" + s + "'" : s;
}
for (var i in o) arr.push("'" + i + "':" + fmt(o[i]));
return '{' + arr.join(',') + '}';
}

 
また、jsonの中の数字も文字列化したくない.変更可能:
return/^(string|number)$/.test(typeof s) ? '"' + s + '"' : s;
は:return/^(string)$/.test(typeof s) ? '"' + s + '"' : s;
(実はnumberタイプを無視しているだけです)