javascript JSON解析函数
2015-09-04 15:53
489 查看
JSON=function(){
return{
encode:function(o){//编码JSON对象
var
str='';
if(typeof(o.length)=='number')
{
str='[';
for(var
i=0;i<o.length;i++)
{
if(o[i]==null)
str+='null';
else{
var
t=typeof(o[i]);
switch(t){
case
'string':
str+='"'+o[i].replace('"','//"')+'"';
break;
case
'object':
str+=this.encode(o[property]);
break;
case
'number':
str+=o[i];
break;
case
'null':
str+=property+':null,';break;
case
'function':
str+=[i].toString();
break;
}
}
if(i<o.length-1)str+=',';
}
return
str+']';
}else{
str='{';
for(var property in
o)
{
if(o[property]==null)
str+=property+':null,';
else
{
var
t=typeof(o[property]);
switch(t){
case
'string':
str+=property+':"'+o[property].replace('"','//"')+'",';
break;
case
'object':
str+=property+":"+this.encode(o[property])+',';
break;
case
'number':
str+=property+":"+o[property]+',';
break;
case
'function':
str+=property+":"+o[property].toString()+',';
break;
}
}
}
}
if(str.length>0)
return str.substr(0,str.length-1)+'}';
return
str+'}';
},
decode:function(str){//解析json文本
try{
return
eval('('+str+')');
}catch (e){
}
alert('error');
return
null;
}
}
}();
用法:
var
obj=function(){
return{
ID:500,
NAME:'何正明',
STATUS:'online',
SEX:null,
ARRAY:[1,2],
func:function(){
return
'aaa';
}
};
}();
function doparse(){
var newstr
=JSON.encode(obj)
alert(newstr);
var
newobj=JSON.decode(newstr);
alert(newobj.SEX);
}
return{
encode:function(o){//编码JSON对象
var
str='';
if(typeof(o.length)=='number')
{
str='[';
for(var
i=0;i<o.length;i++)
{
if(o[i]==null)
str+='null';
else{
var
t=typeof(o[i]);
switch(t){
case
'string':
str+='"'+o[i].replace('"','//"')+'"';
break;
case
'object':
str+=this.encode(o[property]);
break;
case
'number':
str+=o[i];
break;
case
'null':
str+=property+':null,';break;
case
'function':
str+=[i].toString();
break;
}
}
if(i<o.length-1)str+=',';
}
return
str+']';
}else{
str='{';
for(var property in
o)
{
if(o[property]==null)
str+=property+':null,';
else
{
var
t=typeof(o[property]);
switch(t){
case
'string':
str+=property+':"'+o[property].replace('"','//"')+'",';
break;
case
'object':
str+=property+":"+this.encode(o[property])+',';
break;
case
'number':
str+=property+":"+o[property]+',';
break;
case
'function':
str+=property+":"+o[property].toString()+',';
break;
}
}
}
}
if(str.length>0)
return str.substr(0,str.length-1)+'}';
return
str+'}';
},
decode:function(str){//解析json文本
try{
return
eval('('+str+')');
}catch (e){
}
alert('error');
return
null;
}
}
}();
用法:
var
obj=function(){
return{
ID:500,
NAME:'何正明',
STATUS:'online',
SEX:null,
ARRAY:[1,2],
func:function(){
return
'aaa';
}
};
}();
function doparse(){
var newstr
=JSON.encode(obj)
alert(newstr);
var
newobj=JSON.decode(newstr);
alert(newobj.SEX);
}
相关文章推荐
- JS实现先显示大图后自动收起显示小图的广告代码
- JavaScript随笔(一):数据类型
- JavaScript Engines
- JavaScript实现的多个图片广告交替显示效果代码
- Ajax、json
- seajs简记
- js中对style中的多个属性进行设值
- Servlet端 接收不到4096,8192长度的JSON参数
- 【原创】Loadrunner使用json格式请求数据并参数化
- JavaScript 开发者必备的10款 SublimeText 插件
- javascript实现OOP编程
- JavaScript学习笔记6-单元测试框架之Jasmine
- 基于JS实现简单的样式切换效果代码
- 利用AXIS2传递JSON数据
- 利用AXIS2传递JSON数据
- best javascript framework list -- 最好的js框架
- best javascript framework list -- 最好的js框架
- JS实现横向拉伸动感伸缩菜单效果代码
- Hello JSP!——<jsp:forward>动作元素篇
- js实现简洁的滑动门菜单(选项卡)效果代码