2013-08-21 121 views
2

我一直在尝试一些代码从这里实现我的目标,但我还没有找到解决方案。使用JavaScript获取JSON数组获取使用javascript(jquery)

目标:我必须使用GET方法从网页(通过URL)获取JSON对象数组。我必须用Javascript或HTML来做到这一点。我一直在尝试JavaScript与jQuery和Ajax。这个想法是当我正在加载的网页我必须得到JSON对象数组。我想要保存JSON objets数组在字符串中进行操作。 JSON阵列的

的例子,我有一个从http://www.example.com/example

[ 
    { 
     "type": "1", 
     "id": "50a92047a88d8", 
     "title": "Real Madrid" 
    }, 
    { 
     "type": "1", 
     "id": "500cbb1a5ef23", 
     "title": "Fernando Alonso" 
    } 
] 

得到当我在浏览器中,我总是得不到回应我的代码运行。

这些都是一些代码片段我已经试过:

HTML代码

<html> 
<head> 
    <script src="http://code.jquery.com/jquery-1.10.2.min.js"></script> 
    <script src="http://code.jquery.com/ui/1.8.23/jquery-ui.min.js"></script> 
    <script type="text/javascript" src="script.js"></script> 
    <link type = "text/css" rel = "stylesheet" href = "stylesheet.css"/> 
</head> 
<body onload = "httpGet('http://www.example.com/example')"> 
</body> 
</html> 

Javascript代码

function httpGet(theUrl) 
{ 
$.getJSON(theUrl, function(data) 
{ 
    $.each(data, function() 
    { 
     console.log(this['title']); 
    }) 
}); 
} 

其他JavaScript代码

$.ajax(
{ 
    url: theUrl, 
    type: 'GET', 
    dataType: 'json', 
    accept: 'application/json', 
    success: function(data) 
    { 
     console.log(data); 
     var objets= $.parseJSON(data); 

     $.each(objets, function(i, obj) 
     { 
      console.log(obj.title); 
     }); 
    } 
}); 

而且我有证明一下t代码从这里(桩溢出)...

非常感谢你和我的英语原谅。

编辑:

前段时间我试着用字符串化,但我真的不知道怎么能工作。 我证明了如下:

function httpGet(theUrl) 
{ 
    var xmlHttp = null; 
    xmlHttp = new XMLHttpRequest(); 
    xmlHttp.open("GET", theUrl, true); // I tried with true and with false 
    xmlHttp.send(); 
    var answer= xmlHttp.responseText; 
    var str = JSON.stringify(answer); 
    console.log(str); 
    var jsonResponse = JSON.parse(str); 
    console.log(jsonResponse); 
} 
+0

是指定的URL指向_your_域,即同一个域中从加载你的页面?标准的ajax请求(对于JSON或任何其他格式)不能跨域使用。 – nnnnnn

+0

为此使用stringify –

+1

那么成功时'数据'中有什么?它是否成功?也许它会碰到'error'。您是否尝试添加回调并查看会发生什么?另外,在Chrome/Firefox Inspector中检查您的网络标签通常也有帮助。 – Bartek

回答

-1

你不能用JavaScript抓取数据跨域,你必须把你的数据域下或使用JSONP得到它,或只是打印出来的页面上。

+0

我认为你还没有理解我,或者我没有很好地解释我自己,或者两者兼而有之。 我想将保存在变量中的GET调用检索到的JSON对象数组。 – Fer7

+0

如果GET调用地址与您的脚本不是同一个域,您的调用将失败,并且没有响应。只需查看[link](http://www.w3.org/TR/access-control/) – Lookis

+0

然后,我该怎么办?用jsoup可以做到这一点? – Fer7

-1

我已经找到了解决我的问题有一行PHP代码

<?php 
    echo file_get_contents("http://www.example.com/example"); 
?> 

在那之后,我需要引用的PHP文件在JavaScript文件。 最后,我可以访问JSON对象数组的键值对。

function httpGet() 
{  
    $.getJSON('phpfile.php', function(data) 
    { 
     $.each(data, function(i, obj) 
     { 
      console.log("object: " + i + ", title: " + obj.title); 
     }); 
    }); 
} 

在HTML文件中我修改的下一行:

<body onload = "httpGet()">