Object转换成json的JS代码
来源:互联网 发布:mac flash 制作软件 编辑:程序博客网 时间:2024/05/17 21:54
下面是通用的Object转换成json的JS代码
//用法
//var obj=new Object();
//obj.Name= 'Nams ';
//obj.Sex=1;
//JSON.serialize(obj);//will get: {Name: 'Nams ',Sex:1}
if(typeof StringBuilder== 'undefined '){
StringBuilder=function(initialText)
{
var _parts = new Array();
if ((typeof(initialText) == 'string ')
&&(initialText.length != 0))
_parts.push(initialText);
this.append = function(text) {
if ((text == null) || (typeof(text) == 'undefined ')) {
return;
}
if ((typeof(text) == 'string ') && (text.length == 0)) {
return;
}
_parts.push(text);
}
this.appendLine = function(text) {
this.append(text);
_parts.push( '/r/n ');
}
this.clear = function() {
_parts.clear();
}
this.isEmpty = function() {
return (_parts.length == 0);
}
this.toString = function(delimiter) {
return _parts.join(delimiter || ' ');
}
}
}
JSON = new function() {
function serializeWithBuilder(object, stringBuilder) {
var i;
switch (typeof object) {
case 'object ':
if (object) {
if (object.join) {//if is array, you can using another method implement
stringBuilder.append( '[ ');
for (i = 0; i < object.length; ++i) {
if (i > 0) {
stringBuilder.append( ', ');
}
stringBuilder.append(serializeWithBuilder(object[i], stringBuilder));
}
stringBuilder.append( '] ');
}
else {
if (typeof object.serialize == 'function ') {
stringBuilder.append(object.serialize());
break;
}
stringBuilder.append( '{ ');
var needComma = false;
for (var name in object) {
if (name.startsWith( '$ ')) {
continue;
}
var value = object[name];
if (typeof value != 'undefined ' && typeof value != 'function ') {
if (needComma)
stringBuilder.append( ', ');
else
needComma = true;
stringBuilder.append(serializeWithBuilder(name, stringBuilder));
stringBuilder.append( ': ');
stringBuilder.append(serializeWithBuilder(value, stringBuilder));
}
}
stringBuilder.append( '} ');
}
}
else {
stringBuilder.append( 'null ');
}
break;
case 'number ':
if (isFinite(object)) {
stringBuilder.append(String(object));
}
else {
stringBuilder.append( 'null ');
}
break;
case 'string ':
stringBuilder.append( ' " ');
var length = object.length;
for (i = 0; i < length; ++i) {
var curChar = object.charAt(i);
if (curChar > = ' ') {
if (curChar == '// ' || curChar == ' " ') {
stringBuilder.append( '// ');
}
stringBuilder.append(curChar);
}
else {
switch (curChar) {
case '/b ':
stringBuilder.append( '//b ');
break;
case '/f ':
stringBuilder.append( '//f ');
break;
case '/n ':
stringBuilder.append( '//n ');
break;
case '/r ':
stringBuilder.append( '//r ');
break;
case '/t ':
stringBuilder.append( '//t ');
break;
default:
stringBuilder.append( '//u00 ');
stringBuilder.append(curChar.charCodeAt().toString(16));
}
}
}
stringBuilder.append( ' " ');
break;
case 'boolean ':
stringBuilder.append(object.toString());
break;
default:
stringBuilder.append( 'null ');
break;
}
}
this.serialize = function(object) {
var stringBuilder = new StringBuilder();
serializeWithBuilder(object, stringBuilder);
return stringBuilder.toString();
}
this.deserialize = function(data) {
return eval( '( ' + data + ') ');
}
}
//用法
//var obj=new Object();
//obj.Name= 'Nams ';
//obj.Sex=1;
//JSON.serialize(obj);//will get: {Name: 'Nams ',Sex:1}
if(typeof StringBuilder== 'undefined '){
StringBuilder=function(initialText)
{
var _parts = new Array();
if ((typeof(initialText) == 'string ')
&&(initialText.length != 0))
_parts.push(initialText);
this.append = function(text) {
if ((text == null) || (typeof(text) == 'undefined ')) {
return;
}
if ((typeof(text) == 'string ') && (text.length == 0)) {
return;
}
_parts.push(text);
}
this.appendLine = function(text) {
this.append(text);
_parts.push( '/r/n ');
}
this.clear = function() {
_parts.clear();
}
this.isEmpty = function() {
return (_parts.length == 0);
}
this.toString = function(delimiter) {
return _parts.join(delimiter || ' ');
}
}
}
JSON = new function() {
function serializeWithBuilder(object, stringBuilder) {
var i;
switch (typeof object) {
case 'object ':
if (object) {
if (object.join) {//if is array, you can using another method implement
stringBuilder.append( '[ ');
for (i = 0; i < object.length; ++i) {
if (i > 0) {
stringBuilder.append( ', ');
}
stringBuilder.append(serializeWithBuilder(object[i], stringBuilder));
}
stringBuilder.append( '] ');
}
else {
if (typeof object.serialize == 'function ') {
stringBuilder.append(object.serialize());
break;
}
stringBuilder.append( '{ ');
var needComma = false;
for (var name in object) {
if (name.startsWith( '$ ')) {
continue;
}
var value = object[name];
if (typeof value != 'undefined ' && typeof value != 'function ') {
if (needComma)
stringBuilder.append( ', ');
else
needComma = true;
stringBuilder.append(serializeWithBuilder(name, stringBuilder));
stringBuilder.append( ': ');
stringBuilder.append(serializeWithBuilder(value, stringBuilder));
}
}
stringBuilder.append( '} ');
}
}
else {
stringBuilder.append( 'null ');
}
break;
case 'number ':
if (isFinite(object)) {
stringBuilder.append(String(object));
}
else {
stringBuilder.append( 'null ');
}
break;
case 'string ':
stringBuilder.append( ' " ');
var length = object.length;
for (i = 0; i < length; ++i) {
var curChar = object.charAt(i);
if (curChar > = ' ') {
if (curChar == '// ' || curChar == ' " ') {
stringBuilder.append( '// ');
}
stringBuilder.append(curChar);
}
else {
switch (curChar) {
case '/b ':
stringBuilder.append( '//b ');
break;
case '/f ':
stringBuilder.append( '//f ');
break;
case '/n ':
stringBuilder.append( '//n ');
break;
case '/r ':
stringBuilder.append( '//r ');
break;
case '/t ':
stringBuilder.append( '//t ');
break;
default:
stringBuilder.append( '//u00 ');
stringBuilder.append(curChar.charCodeAt().toString(16));
}
}
}
stringBuilder.append( ' " ');
break;
case 'boolean ':
stringBuilder.append(object.toString());
break;
default:
stringBuilder.append( 'null ');
break;
}
}
this.serialize = function(object) {
var stringBuilder = new StringBuilder();
serializeWithBuilder(object, stringBuilder);
return stringBuilder.toString();
}
this.deserialize = function(data) {
return eval( '( ' + data + ') ');
}
}
- Object转换成json的JS代码
- js object 、 json转换
- js object 、 json转换
- JS json object 与 string 相互转换
- JSON和Object 的转换
- Object对象转换成json
- json 的js 转换
- json,string和object的转换
- Gson:Object和Json的转换
- 后台拿到Json前台Jquery转换为JS object
- JSON和Object数组在js中的转换
- js使用eval来转换JSON字符到Object
- javascript中将Object转换为String函数代码 (json str)
- ios中json object转换成字符串
- C# Object 、json转换
- Java Object, Json 转换
- java json object 转换
- json,string,object转换
- Script# 入门
- 关系SQL自己的想法
- 数据库连接字符串的另类查看方式
- 衡水深县(深州)访桃花
- IsPostBack深入探讨
- Object转换成json的JS代码
- 深入 Script# System(1)
- PHP5终极安装——PHP5+IIS5+Windows2000Server
- iText 简介
- 新的开始
- 开始学习oracle ebs r12--安装前准备 (6)
- .net IConfigurationSectionHandler接口应用
- 综合--关于J2ME中RMS的使用解析
- 大觉寺,鹫峰,农家院 游玩