`
deng131
  • 浏览: 675445 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

JavaScript中json对象序列化转换

阅读更多

jquery实现方法是:
window.JSON && window.JSON.parse ?window.JSON.parse( data ):(new Function("return " + data))();
ext,dojo实现方法是:
eval("(" + json + ")"); // Object

比较好的方式:
JSON = {
    useHasOwn: ({}.hasOwnProperty ? true: false),
    pad: function(n) {
        return n < 10 ? "0" + n: n;
    },
    m: {
        "\b": '\\b',
        "\t": '\\t',
        "\n": '\\n',
        "\f": '\\f',
        "\r": '\\r',
        '"': '\\"',
        "\\": '\\\\'
    },
    encodeString: function(s) {
        if (/["\\\x00-\x1f]/.test(s)) {
            return '"' + s.replace(/([\x00-\x1f\\"])/g,
            function(a, b) {
                var c = m[b];
                if (c) {
                    return c;
                }
                c = b.charCodeAt();
                return "\\u00" + Math.floor(c / 16).toString(16) + (c % 16).toString(16);
            }) + '"';
        }
        return '"' + s + '"';
    },
    encodeArray: function(o) {
        var a = ["["],b, i, l = o.length,v;
        for (i = 0; i < l; i += 1) {
            v = o[i];
            switch (typeof v) {
            case "undefined":
            case "function":
            case "unknown":
                break;
            default:
                if (b) {
                    a.push(',');
                }
                a.push(v === null ? "null": this.encode(v));
                b = true;
            }
        }
        a.push("]");
        return a.join("");
    },
    encodeDate: function(o) {
        return '"' + o.getFullYear() + "-" + pad(o.getMonth() + 1) + "-" + pad(o.getDate()) + "T" + pad(o.getHours()) + ":" + pad(o.getMinutes()) + ":" + pad(o.getSeconds()) + '"';},
    encode: function(o) {
        if (typeof o == "undefined" || o === null) {
            return "null";
        } else if (o instanceof Array) {
            return this.encodeArray(o);
        } else if (o instanceof Date) {
            return this.encodeDate(o);
        } else if (typeof o == "string") {
            return this.encodeString(o);
        } else if (typeof o == "number") {
            return isFinite(o) ? String(o) : "null";
        } else if (typeof o == "boolean") {
            return String(o);
        } else {
            var self = this;
            var a = ["{"],b,i,v;
            for (i in o) {
                if (!this.useHasOwn || o.hasOwnProperty(i)) {
                    v = o[i];
                    switch (typeof v) {
                    case "undefined":
                    case "function":
                    case "unknown":
                        break;
                    default:
                        if (b) {
                            a.push(',');
                        }
                        a.push(self.encode(i), ":", v === null ? "null": self.encode(v));
                        b = true;
                    }
                }
            }
            a.push("}");
            return a.join("");
        }
    },
    decode: function(json) {
        return eval("(" + json + ')');
    }
};


JSON.decode('{a:1}')
JSON.encode({a:1,b:{c:'2'}})


参考:
http://www.ramirezcobos.com/2009/12/30/json-jquery-plugin/
http://stackoverflow.com/questions/1184624/serialize-form-to-json-with-jquery
分享到:
评论

相关推荐

    Json反序列化

    反序列化是将JSON格式的字符串转换为程序可直接使用的对象的过程,这对于处理网络请求返回的数据至关重要。在本篇文章中,我们将深入探讨JSON反序列化的概念、原因以及在实际开发中的应用。 一、什么是JSON反序列化...

    ASPNET中JSON的序列化和反序列化的方法

    下面将详细介绍***中JSON序列化和反序列化的几种方法以及如何处理日期时间类型的序列化和反序列化。 首先,了解JSON的基本格式是非常重要的。JSON的数据结构由对象(Object)、数组(Array)、字符串(String)、数字...

    json数据序列化和反序列化

    总之,JSON序列化和反序列化在Web开发中扮演着核心角色,它们使数据能够在客户端和服务器之间以及本地存储中高效地传递和管理。通过理解并熟练运用这些概念,开发者能够构建出更加灵活和可扩展的应用程序。

    C++ JSON 序列化与反序列化

    **一、JSON序列化** 序列化是指将C++的对象转换为JSON字符串的过程,以便在网络上传输或保存到文件中。常见的C++ JSON序列化库有RapidJSON、nlohmann/json、jsoncpp等。以nlohmann/json为例,它的使用非常直观: 1...

    关于XML、JSON的序列化、发序列化对象或集合

    JSON序列化是将对象或集合转换为JSON格式的过程。 在上面的代码中,我们使用了`System.Runtime.Serialization.Json.DataContractJsonSerializer`类来实现JSON序列化。该类提供了将对象序列化为JSON的方法。 例如,...

    delphi_JSON序列化反序列化

    本篇将深入探讨Delphi中的JSON序列化和反序列化技术。 一、JSON简介 JSON是一种独立于语言的数据表示格式,它基于ECMAScript的一个子集。一个有效的JSON对象通常包含键值对(key-value pairs)的集合,数组或其他...

    json反序列化

    `Newtonsoft.Json.dll` 是Json.NET库的二进制文件,包含所有必要的类型和方法,如`JsonSerializer`、`JsonConvert`等,用于处理JSON序列化和反序列化操作。在项目中引用这个库后,就可以使用它的功能。 下面是一个...

    javascript对象转换成json

    在JavaScript中,对象转换成JSON(JavaScript Object Notation)是一种常见的数据交换格式,它轻量级、易读、易写,被广泛应用于Web应用程序之间传递数据。JSON格式是基于JavaScript的一个子集,但它并不是...

    Json序列化和反序列化

    JSON序列化是将数据对象转化为JSON字符串的过程,而反序列化则是将JSON字符串还原为数据对象。在C#中,处理JSON序列化和反序列化有多种方法,本篇文章将深入探讨这一主题。 1. .NET框架内置支持 .NET Framework ...

    Json序列化与反序列化

    总结来说,JSON序列化与反序列化是现代Web开发中不可或缺的一部分,它提供了数据交换的标准格式,使得不同语言和平台之间的数据交互变得简单高效。正确理解和使用这一技术,能够极大地提升开发效率和软件的可维护性...

    Json序列化与反序列化详解

    1. JSON序列化:序列化是指将Java对象转换为JSON字符串的过程,使得数据可以被存储或通过网络传输。这样做的好处是,JSON格式的数据可以在多种语言之间进行互操作,并且易于理解和处理。 2. JSON反序列化:反序列化...

    VB.NET XML和JSON序列化与反序列化

    在VB.NET编程环境中,XML和JSON序列化与反序列化是常见的数据处理技术,用于将对象转换为文本格式(XML或JSON),以便于存储、传输和解析。这两者都是轻量级的数据交换格式,广泛应用于Web服务和客户端应用程序之间...

    JSON序列化反序列化带List

    本文将深入探讨如何在Delphi中进行JSON序列化与反序列化,特别是涉及List类型的数据。 首先,从2010年开始,Delphi引入了VCL库中的`System.JSON`单元,提供了`TJSON`类和相关的函数,使得处理JSON变得十分方便。在...

    JSon发序列化总结

    #### C#中的JSON序列化方法 在C#中处理JSON数据时,主要有以下几种方式来实现序列化和反序列化: 1. **使用JavaScriptSerializer** - JavaScriptSerializer是.NET Framework的一部分,可以将对象转换为JSON字符串...

    Json.net在后台对Json序列化和反序列化

    Json.NET是.NET开发中广泛使用的第三方库,由James Newton-King 开发,它提供了一套高效且功能丰富的JSON序列化和反序列化的解决方案。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于Web...

    json序列化notepad++

    标题中的"json序列化notepad++"指的是在Notepad++中使用插件来格式化和解析JSON数据。序列化是指将JSON对象转换为字符串的过程,以便在网络上传输或保存到文件中;反序列化则是将JSON字符串转换回对象的过程。 描述...

    Json 2.0序列化

    2. **选择序列化库**:在进行JSON序列化时,我们通常会依赖特定的库,如JavaScript内置的`JSON.stringify()`函数。这是一个全局方法,可以将JavaScript对象转换为JSON字符串。 3. **使用`JSON.stringify()`**:调用...

    Json反序列化文件

    标题中的"Json反序列化文件"指的是使用Newtonsoft.Json库将JSON字符串转换为.NET对象的过程。反序列化是将从网络或文件中读取的JSON文本数据转换为可操作的程序实体,如类实例或结构体。这个过程使得开发人员能够...

    Json格式序列化和反序列化处理

    在C#中,处理JSON格式的序列化和反序列化是开发过程中的常见任务,这涉及到将C#对象转换为JSON字符串,以及将JSON字符串还原为C#对象。本文将详细介绍C#中几种常用的JSON处理方法。 一、Newtonsoft.Json库(Json...

Global site tag (gtag.js) - Google Analytics