使用以下代码,我在div中获取json数组字符串(名为remoteFeed
)
说它显示:
{"id":"25","name":"Basil","country":"USA"}
我的问题是如何获取json数组元素?
请注意,即使它显示div中的值 - 警报(见下文)显示空白!!!
alert(data); //-------------------Shows blank
注意:作为一个新手,我试图先获得价值。但在这种情况下,我们必须将其转换为json对象。所以如果你知道一个更好的方法,那么我在客户端获得更值得建议的值(id,name ..)
<!DOCTYPE html>
<html>
<head>
<title></title>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
(function ($) {
$(document).ready(function(){
$('#remoteFeed').load('http://testservice/json/');
var data = remoteFeed.innerHTML;
alert(data); //-------------------Shows blank
/*
var jsonObj = JSON.stringify(eval("(" + data + ")"));
for(var i in jsonObj)
{
var id = data[i].country_code;
alert(id);
}
*/
});
})(jQuery);
var data = remoteFeed.innerHTML;
alert(data);
</script>
</head>
<body>
<div id="remoteFeed"></div>
</body>
答案 0 :(得分:1)
为什么alert()
为空
您在alert()
电话中收到空白值,因为您没有等待load()
请求完成。请考虑将回调函数传递给load()
,而不是立即警告该值。请求完成后执行回调函数。
例如:
$('#remoteFeed').load('http://testservice/json/', function() {
alert($('#remoteFeed').html());
});
如何将JSON字符串视为对象
基本上,您可以使用现代浏览器中的本机JSON
对象将JSON字符串解析为对象。
例如:
var json_object = JSON.parse(json_string);
或者,使用jQuery's other AJAX functions中的一个比使用load()
更适合此任务的情况要好得多。
例如:
$.getJSON('http://testservice/json/', function(json_object) {
for(var i in json_object) {
var id = json_object[i].country_code;
alert(id);
}
});
在此示例中,方法$.getJSON()
执行AJAX请求,假定返回的数据采用JSON格式并自动为您解析。然后将回调函数传递给生成的JSON对象。
答案 1 :(得分:0)
要获取json结果数据,可以使用jQuery.getJSON()方法
参考jquery网站http://api.jquery.com/jquery.getjson/