如何从字符串中获取数据集?

时间:2015-02-28 16:30:57

标签: javascript

请帮助带来一系列数据。春天是here

{"news": [{"img": "http://static2.smi2.net/img/160x120/2212764.jpeg", "title": "Усиление слуха в 2 - 3 раза! Уникальная разработка", "url": "http://news.smi2.ru/newdata/news?ad=681120&bl=81060&ct=adpreview&st=16&in=lJUrBQDHL4CgZAoA", "id": "681120"}]}

我执行以下操作:

var massive = JSON.parse('http://news.smi2.ru/data/js/81060.js');

console.log(massive.news.id);
console.log(massive.news.img);
console.log(massive.news.title);
console.log(massive.news.url);

结果是以下错误消息:

  

未捕获的SyntaxError:意外的令牌h

仅使用原生js

2 个答案:

答案 0 :(得分:6)

你试图解析一个网址,而不是一个json。您可以传递所获得的响应并使用JSON.parse解析它:



var massive = JSON.parse('{"news": [{"img": "http://static1.smi2.net/img/160x120/2269036.jpeg", "title": "Украинские власти и Саакашвили прокомментировали убийство Немцова", "url": "http://news.smi2.ru/newdata/news?ad=696406&bl=81060&ct=adpreview&st=16&in=uU6IBQAiL4BWoAoA", "id": "696406"}]}');


console.log(massive.news[0].id);//outputs 696406




要清除它,您可以使用ajax调用向您想要的网址发出请求:



 $.ajax({
  url: "http://news.smi2.ru/data/js/81060.js",
  dataType : "json"
}).done(function(res) {
    console.log(res.news[0].id);//outputs 696463
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
&#13;
&#13;

答案 1 :(得分:3)

你无法从url解析Json。如果你需要来自URI的数据,请发送一个ajax调用: - //简单的javascript示例。

var xmlhttp;
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
     var massive = JSON.parse(xmlhttp.responseText);

console.log(massive.news[0].id);
console.log(massive.news[0].img);
console.log(massive.news[0].title);
console.log(massive.news[0].url);
    }
}
xmlhttp.open("GET","http://news.smi2.ru/data/js/81060.js",true);
xmlhttp.send();