最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JSON輔助格式化處理方法

 更新時(shí)間:2013年03月26日 09:37:14   作者:  
由于結(jié)果是以json形式返回的,不容易一眼辨認(rèn),所以為了方便,對(duì)結(jié)果進(jìn)行了簡(jiǎn)單的處理,接下來介紹下處理方法,感興趣的各位可以參考下哈
平時(shí)服務(wù)器端開發(fā)人員寫好后臺(tái)之后一般寫一份簡(jiǎn)單的接口說明頁(yè)面,類似:
復(fù)制代碼 代碼如下:

<form action="test.php" accept-charset="utf-8">
<div><label for="">param_1</label><input type="text" name="param_1" value="value_1"/></div>
<div><label for="">param_2</label><input type="text" name="param_2" value="value_2"/></div>
<div><label for="">param_3</label><input type="text" name="param_3" value="value_3"/></div>
<div><label for="">param_4</label><input type="text" name="param_4" value="value_4"/></div>
<div><input type="submit" value="submit"/></div>
</form>

由于結(jié)果是以json形式返回的,不容易一眼辨認(rèn),所以為了方便,對(duì)結(jié)果進(jìn)行了簡(jiǎn)單的處理:
1,由于不能控制返回結(jié)果的頁(yè)面,所以直接對(duì)請(qǐng)求進(jìn)行了攔截并用ajax方式進(jìn)行重發(fā)。
2,格式化返回的json結(jié)果,非json結(jié)果直接顯示。
注:ubuntu下的chromium在處理overflow的問題上貌似有點(diǎn)不一樣,所以結(jié)果容器寫得有點(diǎn)羅嗦。
具體例子:
復(fù)制代碼 代碼如下:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
</head>
<body>
<div id="page">
<form action="test.php" accept-charset="utf-8">
<div><label for="">param_1</label><input type="text" name="param_1" value="value_1"/></div>
<div><label for="">param_2</label><input type="text" name="param_2" value="value_2"/></div>
<div><label for="">param_3</label><input type="text" name="param_3" value="value_3"/></div>
<div><label for="">param_4</label><input type="text" name="param_4" value="value_4"/></div>
<div><input type="submit" value="submit"/></div>
</form>
</div>
<script type="text/javascript" src="../js/jQuery.js"></script>
<script type="text/javascript" src="../js/JSONFormat.js"></script>
</body>
</html>

結(jié)果:

JSONFormat.js內(nèi)容:
復(fù)制代碼 代碼如下:

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 '<span class="json_null">null</span>';
}
function _format_boolean(object){
return '<span class="json_boolean">' + object + '</span>';
}
function _format_number(object){
return '<span class="json_number">' + object + '</span>';
}
function _format_string(object){
if(0 <= object.search(/^http/)){
object = '<a href="' + object + '" target="_blank" class="json_link">' + object + '</a>'
}
return '<span class="json_string">"' + object + '"</span>';
}
function _format_array(object, indent_count){
var tmp_array = [];
for(var i = 0, size = object.length; i < size; ++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) + '<span class="json_key">"' + key + '"</span>:' + 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 = $('<pre id="result" style=" width: 100%; height: 100%; overflow: scroll; overflow-x: scroll; overflow-y:scroll"></pre>')
var $result_container = $('<div id="result_container" style="position: fixed; top: 1%; right: 8px; width: 5%; height: 97%; margin: 0; padding: 0; border:1px solid skyblue; background: #f8f8f8; line-height: 1.2em; font-size: 14px; cursor: pointer;"></div>');
$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());

相關(guān)文章

  • JavaScript 解析Json字符串的性能比較分析代碼

    JavaScript 解析Json字符串的性能比較分析代碼

    我們?cè)谑褂肁JAX來做服務(wù)器端和客戶端交互的時(shí)候,一般的做法是讓服務(wù)器端返回一段JSON字符串,然后在客戶端把它解析成JavaScript對(duì)象。
    2009-12-12
  • JSON輔助格式化處理方法

    JSON輔助格式化處理方法

    由于結(jié)果是以json形式返回的,不容易一眼辨認(rèn),所以為了方便,對(duì)結(jié)果進(jìn)行了簡(jiǎn)單的處理,接下來介紹下處理方法,感興趣的各位可以參考下哈
    2013-03-03
  • json 實(shí)例詳細(xì)說明教程

    json 實(shí)例詳細(xì)說明教程

    這是個(gè)人在最近使用json時(shí)做的總結(jié),拿出來給沒接觸過的小弟們曬曬,適用與沒接觸過json的人員,其中json2。js請(qǐng)到j(luò)son官網(wǎng)下載。
    2009-10-10
  • JSON取值前判斷

    JSON取值前判斷

    這篇文章主要介紹了JSON取值前判斷,需要的朋友可以參考下
    2014-12-12
  • 深入javascript json QQ網(wǎng)頁(yè)登陸

    深入javascript json QQ網(wǎng)頁(yè)登陸

    下面是個(gè)類似QQ網(wǎng)頁(yè)登陸的一個(gè)對(duì)話框(DIV), js + json 動(dòng)態(tài)生成.
    2009-07-07
  • 快速解決處理后臺(tái)返回json數(shù)據(jù)格式的問題

    快速解決處理后臺(tái)返回json數(shù)據(jù)格式的問題

    今天小編就為大家分享一篇快速解決處理后臺(tái)返回json數(shù)據(jù)格式的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-08-08
  • IE8 原生JSON支持

    IE8 原生JSON支持

    你可能已經(jīng)從這篇文章的標(biāo)題中猜到了,Internet Explorer 8(目前是Beta2)提供了原生JSON的解析和序列化。
    2009-04-04
  • 詳解Java中String JSONObject JSONArray List<實(shí)體類>轉(zhuǎn)換

    詳解Java中String JSONObject JSONArray List<實(shí)體類>轉(zhuǎn)換

    這篇文章主要介紹了詳解String JSONObject JSONArray List<實(shí)體類>轉(zhuǎn)換,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • JSON學(xué)習(xí)筆記

    JSON學(xué)習(xí)筆記

    JSON我就要來了
    2008-06-06
  • js實(shí)現(xiàn)刪除json中指定的元素

    js實(shí)現(xiàn)刪除json中指定的元素

    這篇文章主要介紹了js實(shí)現(xiàn)刪除json中指定的元素,需要的朋友可以參考下
    2020-09-09

最新評(píng)論

栾川县| 正阳县| 扶沟县| 滨海县| 双柏县| 汤阴县| 辰溪县| 清涧县| 防城港市| 陕西省| 宝应县| 青龙| 舞钢市| 新绛县| 咸丰县| 瑞金市| 白水县| 山西省| 宜丰县| 宁河县| 景德镇市| 布尔津县| 普定县| 香河县| 丹东市| 昌邑市| 巴东县| 庆城县| 涡阳县| 岳阳县| 龙门县| 芦山县| 石阡县| 富民县| 凯里市| 巧家县| 克拉玛依市| 棋牌| 阳原县| 五台县| 阿拉善右旗|