在做一些项目的时候要查看json格式数据,网上有一些在线解析工具,
不过是加了密的,用着觉得不爽,自己写了个。想要的拿去吧。
支持json,array等混排格式的对象。
更多功能及发现BUG请留言 http://log.anycle.com
/**
* obj_echo.js
* @license Anycle v1.0
* (c) 2015-2015 Anycle
* License: MIT
* (c) 2015-2015 Anycle, Inc. http://log.anycle.com
*/
var G_TAB = '\t';
var G_ENT = '\n';
var encode_str = '{"keya":12341,"keybb":[{"a":11}, \
{"b":22},{"arr":[{"aa":223424,"bbbbb":242423423424}]}],"keycc":{"a":1,"b":2}}';
var obj = eval('('+encode_str+')');
var isArray = function(obj) {
return Object.prototype.toString.call(obj) === '[object Array]';
}
var array_echo = function(obj, indent){
var ret = '';
var i = 0;
for(var p in obj){
switch(typeof(obj[p])){
case 'object':
if(isArray(obj[p])){
ret += ( (i>0)?(','+G_ENT):('') ) + indent
+ '['+G_ENT;
ret += array_echo(obj[p], indent + G_TAB );
ret += G_ENT + indent + ']';
}else{
ret += ( (i>0)?(','+G_ENT):('') ) + indent
+ '{'+G_ENT;
ret += json_echo(obj[p], indent + G_TAB );
ret += G_ENT + indent + '}';
}
break;
case 'number':
ret += ( (i>0)?(','+G_ENT):('') ) + indent + obj[p];
break;
case 'string':
ret += ( (i>0)?(','+G_ENT):('') ) + indent + obj[p] + '"';
break;
}
i++;
}
return ret;
}
var json_echo = function(obj, indent){
var ret = '';
var i = 0;
for(var p in obj){
switch(typeof(obj[p])){
case 'object':
if(isArray(obj[p])){
ret += ( (i>0)?(','+G_ENT):('') ) + indent
+ '"'+ p +'":'
+ '['+G_ENT;
ret += array_echo(obj[p], indent + G_TAB );
ret += G_ENT + indent + ']';
}else{
ret += ( (i>0)?(','+G_ENT):('') ) + indent
+ '"'+ p +'":'
+ '{'+G_ENT;
ret += json_echo(obj[p], indent + G_TAB );
ret += G_ENT + indent + '}';
}
break;
case 'number':
ret += ( (i>0)?(','+G_ENT):('') ) + indent + '"'+ p +'":'
+ obj[p];
break;
case 'string':
ret += ( (i>0)?(','+G_ENT):('') ) + indent + '"'+ p +'":"'
+ obj[p] + '"';
break;
}
i++;
}
return ret;
}
/*
alert( json_echo(obj, '') );
*/