另外在网上找到了第二种方法,那种方法稍微麻烦一点,但稍灵活一点,而且如果按照eval漏洞多的话,这种方法可能会安全一点: var a = data1.d; var b= $.parseJSON(a); $.each(b.head, function (key, value) { $.each(value, function (k1, v1) { alert(v1);//这就能取到所有的值了 }) }); 万分感谢大家。昨天要是来提问,早就解决了,不至于痛苦一天,最多痛苦半天
var json = {"head":[{"TitleM":"24小时气温变化图","TitleF":"2014年4月9日8时~2014年4月10日8时","Y":"气温(摄氏度)"}],"Time":[{"Time":"9日8时"},{"Time":"9日9时"},{"Time":"9日10时"},{"Time":"9日11时"},{"Time":"9日12时"},{"Time":"9日13时"},{"Time":"9日14时"},{"Time":"9日15时"},{"Time":"9日16时"},{"Time":"9日17时"},{"Time":"9日18时"},{"Time":"9日19时"},{"Time":"9日20时"},{"Time":"9日21时"},{"Time":"9日22时"},{"Time":"9日23时"},{"Time":"10日0时"},{"Time":"10日1时"},{"Time":"10日2时"},{"Time":"10日3时"},{"Time":"10日4时"},{"Time":"10日5时"},{"Time":"10日6时"},{"Time":"10日7时"}],"content":[{"站名":"2014040909","气温":"18.3"},{"站名":"2014040910","气温":"21"},{"站名":"2014040911","气温":"22.6"},{"站名":"2014040912","气温":"24.5"},{"站名":"2014040913","气温":"26.1"},{"站名":"2014040914","气温":"27.7"},{"站名":"2014040915","气温":"28.5"},{"站名":"2014040916","气温":"28.9"},{"站名":"2014040917","气温":"28"},{"站名":"2014040918","气温":"26.6"},{"站名":"2014040919","气温":"25"},{"站名":"2014040920","气温":"23.7"},{"站名":"2014040921","气温":"22.9"},{"站名":"2014040922","气温":"21.8"},{"站名":"2014040923","气温":"21.1"},{"站名":"2014041000","气温":"20.4"},{"站名":"2014041001","气温":"20.4"},{"站名":"2014041002","气温":"19.5"},{"站名":"2014041003","气温":"19.2"},{"站名":"2014041004","气温":"18.9"},{"站名":"2014041005","气温":"18.3"},{"站名":"2014041006","气温":"18"},{"站名":"2014041007","气温":"18.7"},{"站名":"2014041008","气温":"20.4"}]};var array = json["head"]; for(var i = 0; i < array.length;i++){ array[i]["TitleM"]; array[i]["TitleF"]; ............... }已正确遍历
alert(d.head[0].TitleM)
alert(d.head[0].TitleF)
alert(d.head[0].Y)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Untitled Page</title>
</head>
<body>
<script language=JavaScript>
var data = {"head":[{"TitleM":"24小时气温变化图","TitleF":"2014年4月9日8时~2014年4月10日8时","Y":"气温(摄氏度)"}],"Time":[{"Time":"9日8时"},{"Time":"9日9时"},{"Time":"9日10时"},{"Time":"9日11时"},{"Time":"9日12时"},{"Time":"9日13时"},{"Time":"9日14时"},{"Time":"9日15时"},{"Time":"9日16时"},{"Time":"9日17时"},{"Time":"9日18时"},{"Time":"9日19时"},{"Time":"9日20时"},{"Time":"9日21时"},{"Time":"9日22时"},{"Time":"9日23时"},{"Time":"10日0时"},{"Time":"10日1时"},{"Time":"10日2时"},{"Time":"10日3时"},{"Time":"10日4时"},{"Time":"10日5时"},{"Time":"10日6时"},{"Time":"10日7时"}],"content":[{"站名":"2014040909","气温":"18.3"},{"站名":"2014040910","气温":"21"},{"站名":"2014040911","气温":"22.6"},{"站名":"2014040912","气温":"24.5"},{"站名":"2014040913","气温":"26.1"},{"站名":"2014040914","气温":"27.7"},{"站名":"2014040915","气温":"28.5"},{"站名":"2014040916","气温":"28.9"},{"站名":"2014040917","气温":"28"},{"站名":"2014040918","气温":"26.6"},{"站名":"2014040919","气温":"25"},{"站名":"2014040920","气温":"23.7"},{"站名":"2014040921","气温":"22.9"},{"站名":"2014040922","气温":"21.8"},{"站名":"2014040923","气温":"21.1"},{"站名":"2014041000","气温":"20.4"},{"站名":"2014041001","气温":"20.4"},{"站名":"2014041002","气温":"19.5"},{"站名":"2014041003","气温":"19.2"},{"站名":"2014041004","气温":"18.9"},{"站名":"2014041005","气温":"18.3"},{"站名":"2014041006","气温":"18"},{"站名":"2014041007","气温":"18.7"},{"站名":"2014041008","气温":"20.4"}]};
alert(data.head[0].TitleM);
</script>
</body>
</html>
我下面那个是对的
alert(a.head[0].TitleM);
我的javascript就是这样写的,用的是.ajax,注销部分是我无数次试验的局部
如果用jq的ajax方法返回 指定了json数据类型 那么返回后 直接将数据转换成对象 alert(data1.d.head[0].TitleM);
..........
success:function(data) {
alert(data.d.head[0].TitleM); //分别试一下这两个
alert(data.head[0].TitleM); //分别试一下这两个
}
.........
如果用jq的ajax方法返回 指定了json数据类型 那么返回后 直接将数据转换成对象 alert(data1.d.head[0].TitleM);
也不行呢。试验过了,代码里已经有注销的这一段呢,好可怜。
..........
success:function(data) {
alert(data.d.head[0].TitleM); //分别试一下这两个
alert(data.head[0].TitleM); //分别试一下这两个
}
.........
全都不行。我直接像9楼一样,把数据定义成变量,就可以了,能获取到数据
..........
success:function(data) {
alert(data.d.head[0].TitleM); //分别试一下这两个
alert(data.head[0].TitleM); //分别试一下这两个
}
.........
全都不行。我直接像9楼一样,把数据定义成变量,就可以了,能获取到数据
你在哪取的数据?
..........
success:function(data) {
alert(data.d.head[0].TitleM); //分别试一下这两个
alert(data.head[0].TitleM); //分别试一下这两个
}
.........
全都不行。我直接像9楼一样,把数据定义成变量,就可以了,能获取到数据
你在哪取的数据?
在后台asp.net里取的数据
..........
success:function(data) {
alert(data.d.head[0].TitleM); //分别试一下这两个
alert(data.head[0].TitleM); //分别试一下这两个
}
.........
全都不行。我直接像9楼一样,把数据定义成变量,就可以了,能获取到数据
你在哪取的数据?
你可以个从头看一下 别纠结在这一个地方 如果不好使 很有可能 是数据有问题 不符合json格式 或者 数据符合json格式 但是你引用的时候有问题 可能键值没对应!
所以
succcess: function(data1) {
if(typeof(data1) === 'string') {
var a = eval("(" + data1.d + ")");
alert(a.head[0].TitleM);
是错误的!
因为参数 data1 已被解析成了 json 所以不可能是字符串
根据你主贴的描述 data1.d 才可能是字符串
所以应写作
if(typeof(data1.d) === 'string') {
var a = data1.d;
var b= $.parseJSON(a);
$.each(b.head, function (key, value) {
$.each(value, function (k1, v1) {
alert(v1);//这就能取到所有的值了
})
});
万分感谢大家。昨天要是来提问,早就解决了,不至于痛苦一天,最多痛苦半天
var json = {"head":[{"TitleM":"24小时气温变化图","TitleF":"2014年4月9日8时~2014年4月10日8时","Y":"气温(摄氏度)"}],"Time":[{"Time":"9日8时"},{"Time":"9日9时"},{"Time":"9日10时"},{"Time":"9日11时"},{"Time":"9日12时"},{"Time":"9日13时"},{"Time":"9日14时"},{"Time":"9日15时"},{"Time":"9日16时"},{"Time":"9日17时"},{"Time":"9日18时"},{"Time":"9日19时"},{"Time":"9日20时"},{"Time":"9日21时"},{"Time":"9日22时"},{"Time":"9日23时"},{"Time":"10日0时"},{"Time":"10日1时"},{"Time":"10日2时"},{"Time":"10日3时"},{"Time":"10日4时"},{"Time":"10日5时"},{"Time":"10日6时"},{"Time":"10日7时"}],"content":[{"站名":"2014040909","气温":"18.3"},{"站名":"2014040910","气温":"21"},{"站名":"2014040911","气温":"22.6"},{"站名":"2014040912","气温":"24.5"},{"站名":"2014040913","气温":"26.1"},{"站名":"2014040914","气温":"27.7"},{"站名":"2014040915","气温":"28.5"},{"站名":"2014040916","气温":"28.9"},{"站名":"2014040917","气温":"28"},{"站名":"2014040918","气温":"26.6"},{"站名":"2014040919","气温":"25"},{"站名":"2014040920","气温":"23.7"},{"站名":"2014040921","气温":"22.9"},{"站名":"2014040922","气温":"21.8"},{"站名":"2014040923","气温":"21.1"},{"站名":"2014041000","气温":"20.4"},{"站名":"2014041001","气温":"20.4"},{"站名":"2014041002","气温":"19.5"},{"站名":"2014041003","气温":"19.2"},{"站名":"2014041004","气温":"18.9"},{"站名":"2014041005","气温":"18.3"},{"站名":"2014041006","气温":"18"},{"站名":"2014041007","气温":"18.7"},{"站名":"2014041008","气温":"20.4"}]};var array = json["head"];
for(var i = 0; i < array.length;i++){
array[i]["TitleM"];
array[i]["TitleF"];
...............
}已正确遍历