Javascript Chrome扩展:远程api和解析接收到的JSON数据

Javascript Chrome扩展:远程api和解析接收到的JSON数据,javascript,jquery,google-chrome-extension,Javascript,Jquery,Google Chrome Extension,我正在做一个chrome扩展,它调用远程API,我需要读取JSON数据,但它无法解析数据? Jquery应该包含在manifest属性的“background:”中? 如果是,如何进行? “” manifest.json { "manifest_version": 8, "name": "Getting started example", "description": "This extension shows a Google Image search result for th

我正在做一个chrome扩展,它调用远程API,我需要读取JSON数据,但它无法解析数据? Jquery应该包含在manifest属性的“background:”中? 如果是,如何进行? “”

manifest.json

{
  "manifest_version": 8,

  "name": "Getting started example",
  "description": "This extension shows a Google Image search result for the current page",
  "version": "1.0",

  "browser_action": {
    "default_icon": "icon.png",
    "default_title": "p",
    "default_popup": "popup.html"
  },
    "background": {
    "scripts": ["background.js"]
  },
    "content_scripts": [
    {
      "matches": ["http://*/*", "https://*/*"],

      "js": [ "myscript.js"]
    }
  ],
  "icons": {
      "64":"icon.png"
      },
  "permissions": [
      "http://domain.com/*"
    ]

}
background.js

   var xhr = new XMLHttpRequest();

    xhr.open("GET", "http://domain.com/api/path", false);
    xhr.send();

            var result = xhr.responseText;
           //var result = eval('(' + xhr.responseText + ')');

    alert(result);//work print json data
    alert(result.results[1].url);// does not work
接收到的json数据

{"results":[
{"name":"Academic","url":"http:\/\/www.rapidintellect.com\/AEQweb\/"},{"name":"Academy","url":"http:\/\/aocrj.org\/"}
]} {"results":[
{"name2":"Academic","url":"http:\/\/www.rapidintellect.com\/AEQweb\/"},{"name2":"Academy","url":"http:\/\/aocrj.org\/"}
]}

您可以使用
JSON将JSON解析为JavaScript中的
对象

var result = JSON.parse(xhr.responseText);
alert(result.results[0].url);
但我不确定您最初的Ajax请求是否有效

考虑到您将此问题标记为,我们可以简化Ajax请求,并自动解析JSON:

$.ajax({
  type: 'GET',
  url: 'http://example.com/...',
  dataType: 'json',
}).success(function(result){
  alert(result.results[1].url)
});
或者,由于这是一个简单的GET请求,您可以使用更为简捷的方式:

$.getJSON('http://example.com/...', function(result){
  alert(result.results[1].url)
});

您没有使用jQuery?第二个
警报的输出是什么?
?我没有使用任何jQuery当我删除第一个警报并保留第二个警报时“无警报显示”@Seham:尝试jQuery示例。如何在清单中添加jQuery“”?将其下载(右键单击并保存)到扩展的文件夹中。然后将清单更改为包含它,如
“scripts”:[“jquery.min.js”,“background.js”]
我从……下载文件,然后将其保存在扩展文件夹中为“jquery.min.js”。。。。。但还是不行。。。非常感谢您抽出时间:)