jquery json的字符串?
我不需要从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/08/19/javascript-json-serialization/
我用
$.param(jsonObj)
这让我的字符串。
现在大多数浏览器都有一个本机JSON
对象,其中包括parse
和stringify
方法。 因此,只需尝试JSON.stringify({})
并查看是否获得"{}"
。 你甚至可以传入参数来过滤掉键或者进行漂亮的打印,例如JSON.stringify({a:1,b:2}, null, 2)
在每个键的前面放置一个换行符和2个空格。
JSON.stringify({a:1,b:2}, null, 2)
给
"{n "a": 1,n "b": 2n}"
打印为
{
"a": 1,
"b": 2
}
至于你的问题的一部分,使用第二个参数。 来自http://www.javascriptkit.com/jsref/json.shtml:
replacer参数可以是一个函数,也可以是一个String / Numbers数组。 它遍历JSON对象中的每个成员,让您决定每个成员应该更改什么值。 作为一个函数,它可以返回:
作为一个数组,其内部定义的值与JSON对象内部的属性名称相对应,这些属性在转换为JSON对象时应保留。
链接地址: http://www.djcxy.com/p/8075.html