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对象,其中包括parsestringify方法。 因此,只需尝试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

    上一篇: jquery json to string?

    下一篇: How to convert jQuery.serialize() data to JSON object?