您好,欢迎访问一九零五行业门户网

JSON辅助格式化处理方法_json

平时服务器端开发人员写好后台之后一般写一份简单的接口说明页面,类似:
复制代码 代码如下:
param_1
param_2
param_3
param_4
由于结果是以json形式返回的,不容易一眼辨认,所以为了方便,对结果进行了简单的处理:
1,由于不能控制返回结果的页面,所以直接对请求进行了拦截并用ajax方式进行重发。
2,格式化返回的json结果,非json结果直接显示。
注:ubuntu下的chromium在处理overflow的问题上貌似有点不一样,所以结果容器写得有点罗嗦。
具体例子:
复制代码 代码如下:
param_1
param_2
param_3
param_4
结果:
jsonformat.js内容:
复制代码 代码如下:
view code
var jsonformat = (function(){
var _tostring = object.prototype.tostring;
function format(object, indent_count){
var html_fragment = '';
switch(_typeof(object)){
case 'null' :0
html_fragment = _format_null(object);
break;
case 'boolean' :
html_fragment = _format_boolean(object);
break;
case 'number' :
html_fragment = _format_number(object);
break;
case 'string' :
html_fragment = _format_string(object);
break;
case 'array' :
html_fragment = _format_array(object, indent_count);
break;
case 'object' :
html_fragment = _format_object(object, indent_count);
break;
}
return html_fragment;
};
function _format_null(object){
return 'null';
}
function _format_boolean(object){
return '' + object + '';
}
function _format_number(object){
return '' + object + '';
}
function _format_string(object){
if(0 object = '' + object + ''
}
return '' + object + '';
}
function _format_array(object, indent_count){
var tmp_array = [];
for(var i = 0, size = object.length; i tmp_array.push(indent_tab(indent_count) + format(object[i], indent_count + 1));
}
return '[\n'
+ tmp_array.join(',\n')
+ '\n' + indent_tab(indent_count - 1) + ']';
}
function _format_object(object, indent_count){
var tmp_array = [];
for(var key in object){
tmp_array.push( indent_tab(indent_count) + '' + key + ':' + format(object[key], indent_count + 1));
}
return '{\n'
+ tmp_array.join(',\n')
+ '\n' + indent_tab(indent_count - 1) + '}';
}
function indent_tab(indent_count){
return (new array(indent_count + 1)).join(' ');
}
function _typeof(object){
var tf = typeof object,
ts = _tostring.call(object);
return null === object ? 'null' :
'undefined' == tf ? 'undefined' :
'boolean' == tf ? 'boolean' :
'number' == tf ? 'number' :
'string' == tf ? 'string' :
'[object function]' == ts ? 'function' :
'[object array]' == ts ? 'array' :
'[object date]' == ts ? 'date' : 'object';
};
function loadcssstring(){
var style = document.createelement('style');
style.type = 'text/css';
var code = array.prototype.slice.apply(arguments).join('');
try{
style.appendchild(document.createtextnode(code));
}catch(ex){
style.stylesheet.csstext = code;
}
document.getelementsbytagname('head')[0].appendchild(style);
}
loadcssstring(
'.json_key{ color: purple;}',
'.json_null{color: red;}',
'.json_string{ color: #077;}',
'.json_link{ color: #717171;}',
'.json_array_brackets{}');
var _jsonformat = function(origin_data){
this.data = 'string' != typeof origin_data ? origin_data :
json && json.parse ? json.parse(origin_data) : eval('(' + origin_data + ')');
};
_jsonformat.prototype = {
constructor : jsonformat,
tostring : function(){
return format(this.data, 1);
}
}
return _jsonformat;
})();
function create_result_contatiner(){
var $result = $('
')
var $result_container = $('
');
$result_container.append($result);
$result_container.hover(function(){
$(this).stop(true).animate({width:'50%'}, 'slow');
}, function(){
$(this).stop(true).animate({width:'5%'}, 'slow');
});
$('body').append($result_container);
return [$result_container, $result];
}
(function request_intercept(args){
var $result_container = args[0],
$result = args[1];
$('form *[type=submit]').bind('click', function(){
var _form = $(this).parents('form'),
_action = (_form.attr('action') || './'),
_method = (_form.attr('method') || 'get').tolowercase(),
_params = {};
_form.find('input[type=text]').each(function(){
var item = $(this);
_params[item.attr('name')] = item.val();
});
$['get' == _method ? 'get' : 'post'](_action, _params, function(response){
try{
var j = new jsonformat(json && json.parse ? json.parse(response) : eval('(' + response + ')'));
$result.html(j.tostring());
}catch (e){
$result.html($result.text(response).html());
}
$result_container.stop(true).animate({width:'50%'}, 'slow');
});
return false;
});
})(create_result_contatiner());
其它类似信息

推荐信息