2014-01-28 42 views
0

使用下面的代码,我在div(名为remoteFeed
说它得到JSON数组的字符串表示:遍历JSON数组串

{"id":"25","name":"Basil","country":"USA"} 

我的问题是如何才能得到JSON数组元素?

P1请注意,即使它显示在div中的值 - 警报(见下文)显示空白!

alert(data); //-------------------Shows blank 

注意:作为新手,我试图让价值第一。但在这种情况下,我们必须将其转换为json对象。所以,如果你知道一个更好的办法,让我在客户端是更明智

<!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

PL提供完整的代码 - 而不是代码片段 –

+0

我认为你需要使用'回调函数。 load()' – Satpal

回答

1

为什么alert()是空白

你得到的值(ID,姓名..)在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()这是指装载HTML。

例如:

$.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对象。

+0

可以提供完整的代码吗?我修改了代码,如下所示,但不能正常工作--------------(function($){document.ready.ready(function(){。{.getJSON('http: // testservice/json /',函数(json_data){var i在json_data中){ var id = json_data [i]。国家代码; alert(id); } }); })(jQuery); –

+0

没有完整的代码。我遵循你的例子。根据评论中的代码,看起来你有一个语法错误。您错过了关于'document.ready'调用的关闭'})'。无论如何,你不需要用立即执行的函数来包装这个调用,只要执行'$(document).ready(function(){$ .getJSON ...})' – Boaz

0

要获得JSON结果数据,可以使用jQuery.getJSON()方法

参考jQuery的网站http://api.jquery.com/jquery.getjson/

+0

上述soln都不起作用。你给的网址中的示例工作,但不是解析xml标签(在http://api.flickr.com/services/feeds/photos_public.gne?jsoncallback=?)我需要解析json。 –

+0

你好,因为你想在json中使用fliker api数据,你只需要添加format = json。 [http://api.flickr.com/services/feeds/photos_public.gne?format=json] –