循环遍历json数组字符串

时间:2014-01-28 10:38:12

标签: javascript jquery json

使用以下代码,我在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>

2 个答案:

答案 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/