重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这篇文章主要介绍了jQuery处理json数据返回数组和输出的方法,涉及jQuery操作数组及json的技巧,需要的朋友可以参考下
创新互联公司专注于肇庆网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供肇庆营销型网站建设,肇庆网站制作、肇庆网页设计、肇庆网站官网定制、小程序开发服务,打造肇庆网络公司原创品牌,更为您提供肇庆网站排名全网营销落地服务。
本文实例讲述了jQuery处理json数据返回数组和输出的方法。分享给大家供大家参考。具体实现方法如下:
代码如下:
the
json
object
*
*$("selector").print_r_json(json,opts)
:
return
formatted
string
(and
print)
*sprint_r_json
:
just
return
the
string;
*print_r_json
:
return
the
formatted
string
and
json
data
*contribute
明河
*
*auth
iorichina
*
*example:
*3
ways
to
use
it
*script
language="javascript"
*$("selector").print_r_json({"a":"aa","d":{"ef":{"a":"d","d":["a","b"]},"ed":"dd"},"g":"g"},{if_print:true,return_array:true});
*document.write($.sprint_r_json({"a":"aa","d":{"ef":{"a":"d","d":["a","b"]},"ed":"dd"},"g":"g"}));
*$.print_r_json({"a":"aa","d":{"ef":{"a":"d","d":["a","b"]},"ed":"dd"},"g":"g"});
*/script
*
*/
$.fn.print_r_json
=
function(json,options){
if(typeof(json)!="object")
return
false;
var
opts
=
$.extend({},$.fn.print_r_json.defaults,options);
var
data
=
'';
if(opts.if_print)
{
data
=
$.sprint_r_json(json)
$(this).html('div
style="font-weight:bold"'+(opts.return_array?'Array':'JSON-DATA')+'/div'+data);
}
if(opts.array)
{
return
$.json_to_array(json);
}
return
data;
};
$.fn.print_r_json.defaults
=
{
if_print
:
false,//if
or
just
return
formatted
string
return_array
:
true
//return
an
Array
};
$.extend({
print_r_json
:
function(json)
{
if(typeof(json)=="object")
{
var
text='div
style="font-weight:bold;"{/divdiv
style="margin-left:25px;"';
document.write('div
style="font-weight:bold;"{/divdiv
style="margin-left:25px;"');
for(var
p
in
json)
{
if(typeof(json[p])=="object")
{
document.write('div["'+p+'"]
=
');
text+='div["'+p+'"]
=
'+$.print_r_json(json[p])+'/div';
document.write('/div');
}
else
{
text+='div['+((/^d+$/).test(p)?p:('"'+p+'"'))+']
=
"'+json[p]+'"/div';
document.write('div['+p+']
=
'+json[p]+'/div');
}
}
text+='/divdiv
style="font-weight:bold;"}/div';
document.write('/divdiv
style="font-weight:bold;"}/div');
return
(text);
}
else
{
document.write(json);
return
(json);
}
},
sprint_r_json
:
function(json)
{
if(typeof(json)=="object")
{
var
text
=
'div
style="font-weight:bold;"{/divdiv
style="margin-left:25px;"';
for(var
p
in
json)
{
if(typeof(json[p])=="object")
{
text
+=
'div["'+p+'"]
=
'+$.sprint_r_json(json[p])+'/div';
}
else
{
text
+=
'div['+((/^d+$/).test(p)?p:('"'+p+'"'))+']
=
"'+json[p]+'"/div';
}
}
text
+=
'/divdiv
style="font-weight:bold;"}/div';
return
(text);
}
else
{
return
(json);
}
},
json_to_array
:
function(json)
{
if(typeof(json)=="object")
{
var
text
=
new
Array();
for(var
p
in
json)
{
if(typeof(json[p])=="object")
{
text[p]
=
$.json_to_array(json[p]);
}
else
{
text[p]
=
json[p];
}
}
return
(text);
}
else
{
return
(json);
}
}
});
希望本文所述对大家的jQuery程序设计有所帮助。
jquery把json字符串转数组对象的方法:
//数组转json串 var arr = [1,2,3, { a : 1 } ]; JSON.stringify( arr );
//json字符串转数组 var jsonStr = '[1,2,3,{"a":1}]'; JSON.parse( jsonStr );
JSON(JavaScript Object Notation)是一种轻量级的数据交换语言,以文字为基础,且易于让人阅读,同时也方便了机器进行解析和生成。JSON简单说就是javascript中的对象和数组,所以这两种结构就是对象和数组两种结构,通过这两种结构可以表示各种复杂的结构,其可以将JavaScript 对象中表示的一组数据转换为字符串,然后就可以在函数之间轻松地传递这个字符串,或者在异步应用程序中将字符串从Web客户机传递给服务器端程序。
JSON采用完全独立于程序语言的文本格式,但是也使用了类C语言的习惯(包括C、C++、C#、Java、JavaScript、Perl、Python等)。这些特性使JSON成为理想的数据交换语言。
Jquery解析json字符串、json数组
!doctype html
html
head
meta charset="utf-8"
script src="../js/libs/jquery-1.6.2.min.js"/script
/head
body
hr /
h3解析json字符串、json数组/h3
input type="button" id="jsonBtn" name="jsonBtn" value="jsonArray" /
input type="button" id="jsonArray2" name="jsonArray2" value="jsonArray2" /
input type="button" id="jsonStr" name="jsonStr" value="jsonStr" /
input type="button" id="jsonStr2" name="jsonStr2" value="jsonStr2" /
hr /
div class="jsonText"
{"ret": 0, "msg": "", "is_lost":0, "nickname": "小米", "gender": "男", "province": "广东", "city": "广州", "year": "1990", "figureurl": "http:\/\/qzapp.qlogo.cn\/qzapp\/101152201\/D87BF108B19279F31587CE96E5648A98\/30", "figureurl_1": "http:\/\/qzapp.qlogo.cn\/qzapp\/101152201\/D87BF108B19279F31587CE96E5648A98\/50", "figureurl_2": "http:\/\/qzapp.qlogo.cn\/qzapp\/101152201\/D87BF108B19279F31587CE96E5648A98\/100", "figureurl_qq_1": "http:\/\/q.qlogo.cn\/qqapp\/101152201\/D87BF108B19279F31587CE96E5648A98\/40", "figureurl_qq_2": "http:\/\/q.qlogo.cn\/qqapp\/101152201\/D87BF108B19279F31587CE96E5648A98\/100", "is_yellow_vip": "0", "vip": "0", "yellow_vip_level": "0", "level": "0", "is_yellow_year_vip": "0"}
/div
hr /
div class="jsonArray"
{ root:
[
{name:'1',value:'0'},
{name:'6101',value:'西安市'},
{name:'6102',value:'铜川市'},
{name:'6103',value:'宝鸡市'},
{name:'6104',value:'咸阳市'},
{name:'6105',value:'渭南市'},
{name:'6106',value:'延安市'},
{name:'6107',value:'汉中市'},
{name:'6108',value:'榆林市'},
{name:'6109',value:'安康市'},
{name:'6110',value:'商洛市'}
],
json:
[
{name:'6103',value:'宝鸡市'},
{name:'6104',value:'咸阳市'},
{name:'6107',value:'汉中市'},
{name:'6108',value:'榆林市'},
{name:'6110',value:'商洛市'}
]
}
/div
hr /
div class="jsonArray2"
[
{name:'1',value:'0'},
{name:'6101',value:'西安市'},
{name:'6102',value:'铜川市'},
{name:'6103',value:'宝鸡市'},
{name:'6104',value:'咸阳市'},
{name:'6105',value:'渭南市'},
{name:'6106',value:'延安市'},
{name:'6107',value:'汉中市'},
{name:'6108',value:'榆林市'},
{name:'6109',value:'安康市'},
{name:'6110',value:'商洛市'}
]
/div
/body
/html
script type="text/javascript"
///jQuery 解析json字符串
//解析复杂的json数组
$("#jsonBtn").click(function(){
var data=$(".jsonArray").html();
alert("-----"+data);
var dataObj=eval("("+data+")");//转换为json对象
alert(dataObj.root.length);//输出root的子对象数量
alert(dataObj.json.length);//输出json的子对象数量
//遍历json数组
$.each(dataObj.root, function(i, item) {
alert(item.name+"-----root-------"+item.value);
});
//遍历json数组
$.each(dataObj.json, function(i, item) {
alert(item.name+"-----json-------"+item.value);
});
});
//解析单个的json数组
$("#jsonArray2").click(function(){
var data=$(".jsonArray2").html();
alert("-----"+data);
var dataObj=eval("("+data+")");//转换为json对象
alert(dataObj.length);//输出root的子对象数量
//遍历json数组
$.each(dataObj, function(i, item) {
alert(item.name+"-----jsonArray-------"+item.value);
});
});
///解析标准的Json串 方法一
$("#jsonStr").click(function(){
var json=$(".jsonText").html();
alert("---2--"+json);
var item = jQuery.parseJSON(json);
alert(item.nickname);
alert(item.ret);
alert(item.figureurl );
});
///解析标准的Json串,方法二
$("#jsonStr2").click(function(){
var json=$(".jsonText").html();
alert("---2--"+json);
var obj = eval("("+json+")");
alert(obj.nickname);
alert(obj.ret);
alert(obj.figureurl );
});
/script
可以在循环当中判断键名,结合正则表达式判断。
对于json数据,可以使用对象循环方法或者取键名方法,如:"Object.keys","for of"等进行对象循环。
然后在循环当中判断键名称,如果名称以a开头就存入a组,以b开头就存入b组。
判断以a开头的正则表达式可以表示为:"/a\d*/"。