var $ = $ || {};

/**
* 将JS对象序列化为JSON字符串
* @param {Mixed} o The variable to decode
* @return {String} The JSON string
* String json = $.encode(o);
*/
$.encode = (function() {
if ( typeof(JSON)!=='undefined' && typeof(JSON.stringify)!=='undefined') {
return JSON.stringify;
}
var I = !!{}.hasOwnProperty, _ = function(I) {
return I < 10 ? "0" + I : I;
}, A = {
"\b" : "\\b",
"\t" : "\\t",
"\n" : "\\n",
"\f" : "\\f",
"\r" : "\\r",
"\"" : "\\\"",
"\\" : "\\\\"
};
return (function(C) {
if (typeof C == "undefined" || C === null) {
return "null";
} else {
if (Object.prototype.toString.call(C) === "[object Array]") {
var B = ["["], G, E, D = C.length, F;
for (E = 0; E < D; E += 1) {
F = C[E];
switch (typeof F) {
case "undefined" :
case "function" :
case "unknown" :
break;
default :
if (G) {
B.push(",");
}
B.push(F === null ? "null" : $.encode(F));
G = true;
}
}
B.push("]");
return B.join("");
} else {
if ((Object.prototype.toString.call(C) === "[object Date]")) {
return "\"" + C.getFullYear() + "-" + _(C.getMonth() + 1) + "-" + _(C.getDate()) + "T" + _(C.getHours()) + ":" + _(C.getMinutes()) + ":" + _(C.getSeconds()) + "\"";
} else {
if (typeof C == "string") {
return "\"" + C.replace(/([\x00-\x1f\\"])/g, function(B, _) {
var I = A[_];
if (I) {
return I;
}
return '';
}).replace(/[^\u0000-\u00FF]/g, function($0) {
return escape($0).replace(/(%u)(\w{4})/gi, "\\u$2")
}) + "\"";
} else {
if (typeof C == "number") {
return isFinite(C) ? String(C) : "null";
} else {
if (typeof C == "boolean") {
return String(C);
} else {
B = ["{"], G, E, F;
for (E in C) {
if (!I || C.hasOwnProperty(E)) {
F = C[E];
if (F === null) {
continue;
}
switch (typeof F) {
case "undefined" :
case "function" :
case "unknown" :
break;
default :
if (G) {
B.push(",");
}
B.push($.encode(E), ":", $.encode(F));
G = true;
}
}
}
B.push("}");
return B.join("");
}
}
}
}
}
}
});
})();

JS对象序列化为JSON对象的方法的更多相关文章

  1. JavaScriptSerializer类 对象序列化为JSON,JSON反序列化为对象

    JavaScriptSerializer 类由异步通信层内部使用,用于序列化和反序列化在浏览器和 Web 服务器之间传递的数据.说白了就是能够直接将一个C#对象传送到前台页面成为javascript对 ...

  2. JavaScriptSerializer类 对象序列化为JSON,JSON反序列化为对象 。

    JavaScriptSerializer 类由异步通信层内部使用,用于序列化和反序列化在浏览器和 Web 服务器之间传递的数据.说白了就是能够直接将一个C#对象传送到前台页面成为javascript对 ...

  3. jQuery表单验证以及将表单序列化为json对象小练习

    jquery表单验证(非实时验证),同时,将表单序列化为json对象提交表单. <!DOCTYPE html> <html lang="en"> <h ...

  4. 类对象序列化为json串,json串反序列化为类对象

    1.类对象序列化为json串: 方法一: class P(object): def __init__(self,name,age,sex): self.name=name self.age=age s ...

  5. 将表单序列化为JSON对象

    将表单序列化为JSON对象的工具方法: $(function() { //工具方法,可以将指定的表单中的输入项目序列化为JSON数据 $.fn.serializeJson = function() { ...

  6. 023-将表单序列化为json对象

    使用jQuery将表单序列化为json对象,其中serializeJson方法的名字任意,serializeArray()这个jQuery提供的方法.this指的就是谁调用了这个方法. $.fn.se ...

  7. 一般处理程序中 C#中对象转化为Json对象

    namespace: Newtonsoft.Json; context.Response.ContentType = "application/text"; 注:这里为什么不是 J ...

  8. Jquery 将表单序列化为Json对象

    大家知道Jquery中有serialize方法,可以将表单序列化为一个“&”连接的字符串,但却没有提供序列化为Json的方法.不过,我们可以写一个插件实现. 我在网上看到有人用替换的方法,先用 ...

  9. 【jQuery】form表单元素序列化为json对象

    序列化form表单元素为json对象: <!Doctype html> <html xmlns=http://www.w3.org/1999/xhtml> <head&g ...

随机推荐

  1. PHP100精华:很靠谱linux常用命令

    vim是打开vim编辑器,别的编辑器还有vi(功能没有vim 强大),nano,emacs等等,感觉还是vim最强大,其次是vi,别的就要差一些了. 我听我们老师说,用图形界面本身已经会被高手笑了,如 ...

  2. 基于 Scrapy-redis 的分布式爬虫详细设计

    基于 Scrapy-redis 的分布式爬虫设计   目录 前言 安装 环境 Debian / Ubuntu / Deepin 下安装 Windows 下安装 基本使用 初始化项目 创建爬虫 运行爬虫 ...

  3. Linux 服务器环境启动

    1.PHP 关闭php killall php-fpm php重启 /usr/local/php/sbin/php-fpm & 或者 /usr/local/php/sbin/php-fpm { ...

  4. NHibernate中几个集合的选择

    NHibernate是从Hibernate移植过来的基于NET平台的一个ORM框架,同时跟这框架一起的还有一个开源库,叫做Iesi.Collections,这个库扩展了NET平台下面的几个集合,所谓集 ...

  5. swift基础语法之控件使用02

    //第一个控制器:显示基础控件 import UIKit class ViewController: UIViewController { var label: UILabel = UILabel() ...

  6. My SqL 常用命令

    1:使用SHOW语句找出在服务器上当前存在什么数据库:mysql> SHOW DATABASES;2:2.创建一个数据库MYSQLDATAmysql> CREATE DATABASE MY ...

  7. PowerDesigner一些常用功能介绍

    主键.自增长等等 修改之前: drop table if exists sys_user; /*==================================================== ...

  8. .gitignore 里面常写的值

    一般用这个文件来控制一些不想提交的内容 这个可以做一个参考 # Windows image file caches Thumbs.db ehthumbs.db   # Folder config fi ...

  9. error: could not install *smartsocket* listener: cannot bind to 127.0.0.1:5037

    问题原因:端口5037被占用 解决方案: 方式一:可以用cmd命令 C:\Users\Administrator>netstat -ano | findstr "5037" ...

  10. git for c#, clone方法

    private static void clone() { string wkDir = @"E:\DotNet2010\单位project\Git.Client\lib2Test\Cons ...