扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
//js解析json!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
创新互联从2013年成立,先为晋江等服务建站,晋江等地企业,进行企业商务咨询服务。为晋江企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
html
head
titleMy JSP 'index.jsp' starting page/title script type="text/javascript"
window.onload=function(){
var json='{[{"logo":"","shopAddress":"广东省深圳市","imgSize":null,"isYam":"N","shopId":"1","shopName":"shopEC电子商城","shopTel":"100000","shopPost":"51800","shopEmail":"shopEC@126.com","shopUrl":"","icp":"dfadsfdsa","storyWarn":"0"}]}';
var result=eval(json);
//取值
alert(result[0].shopAddress);
alert(result[0].imgSize)
}
/script
/head
body
/body
/html //代码已经执行过
你好!
解析成数组是指,将json中的值取出来存放到数组中么?
也许下面代码能给你点帮助:
$(document).ready(function(){
var obj = jQuery.parseJSON('{"jobID":"020000715","username":"\u9a6c\u94f6\u534e","department":"\u7ee7\u7eed\u5b66\u9662"}');
var myData=[]; //定义一个数组变量
$.each(obj,function(key,value){
myData.push(value);
});
alert(myData);
});
1.数组
语法:
ECMAScript
v3规定了数组直接量的语法,JavaScript
1.2和JScript
3.0实现了它。可以把—个用逗号分隔的表达式列表放在方括号中,创建并初始化—个数组。这些表达式的值将成为数组元素。例如:
var
a
=
[1,
true,
'abc'];
具体操作查看API.
ps:必须方括号隔开。
2.关联数组
1.语法:
var
myhash=
{”key1″:”val1″,
“key2″:”val2″
};//obj
2.var
myhash=
{key1:”val1″,
key2:”val2″
};//obj-也可以
ps:跟json格式几乎相同,但是json格式要求更加严格(里面的键值对必须使用双引号),但json只能作为一种格式标准,如果要对其进行操作必须转换成关联数组对象(obj)。
2.简单操作
1.向Hash关联数组添加键值
//
添加一个新键
newkey
,键值为
newval
myhash[”newkey”]
=
“newval”;
2.删除Hash关联数组已有键值
//
删除一个键
newkey
,同时,该键值对应的
newval
也就消失了
delete
myhash[”newkey”];
3.遍历Hash关联数组
//
遍历整个hash
数组
for
(key
in
myhash)
{
val
=
myhash[key];
}
4.获得值
方式1.myhash.key1
方式2.myhash.key2
3.json
格式要求:
{”key1″:”val1″,
“key2″:”val2″
};//严格按照此格式,操作可依照关联数组的操作
二.前后台交互中几个关键点
1.当服务器发送的数据不是一条json,而是多条json时,则应当联系数组和关联数组来组装字符串
例如:var
objs
=
[{
id:
1,
name:
'n_1'
},
{
id:
2,
name:
'n_2'}];
2.至始至终服务器给客户端的数据都只是字符串,因此为了让其能够在js中对其进行必要的操作,可以通过eval()进行转换成js可执行的对象。
因此jQuey中提供的$.parseJSON()是有局限的,如果是上面1提到的这种情况则就必须使用eval()进行转换,然后再通过$.each(objs,function(i,o){...})进行操作
1、先定义一个json变量。
2、然后定义这个变量的值,其实一个json对象就是一个obj对象。
3、要添加json对象的元素,直接使用数组下标方式,添加键和值就行了。
4、要为json对象添加对象,我们可以先创建一个对象。
5、然后也是使用数组下标方式,为其赋值为新的对象变量就行了。
6、在浏览器里,我们就可以看到这个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
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流