Javascript 如何直接从api获取json并使用它?

Javascript 如何直接从api获取json并使用它?,javascript,json,Javascript,Json,上图中有一个变量,我们以json格式键入数据。但我需要的是,我有api的url,我必须从那里获取json并将其分配给变量。怎么做? 我建议您使用JQuery而不是javascript: 选中此项: 检查此项,非常适合初学者: 最简单的解决方案(尽管不是每个人都喜欢)是使用jQuery处理向托管该API的服务器发出AJAX请求: var moviereviewtext = "{"title": "Friday the 13th", "year": 1980, "reviews": [{"revie

上图中有一个变量,我们以json格式键入数据。但我需要的是,我有api的url,我必须从那里获取json并将其分配给变量。怎么做?

我建议您使用JQuery而不是javascript: 选中此项:

检查此项,非常适合初学者:

最简单的解决方案(尽管不是每个人都喜欢)是使用jQuery处理向托管该API的服务器发出AJAX请求:

var moviereviewtext = "{"title": "Friday the 13th", "year": 1980, "reviews": [{"reviewer": "Pam", "stars": 3, "text": "Pretty good, but could have used more Jason"}, {"reviewer": "Alice", "stars": 4, "text": "The end was good, but a little unsettling"}]}";

var jsonobj = eval("(" + moviereviewtext + ")");
jQuery不仅为您处理浏览器不兼容问题,还解析JSON,因此回调函数将直接接收解码对象

$.get(url, options).done(function(obj) { 
    // access the object fields here
    var title = obj.title;
    ...
})
您要找的是JSON.parse()吗

上面的代码将显示移动的标题,其余的数据可以使用点符号以相同的方式访问


另外,我相信您忘了转义movierevewtext变量。

您不是忘了转义您的引用吗

如果是这样,您应该这样做:

var moviereviewtext = "{\"title\": \"Friday the 13th\", \"year\": 1980, \"reviews\": [{\"reviewer\": \"Pam\", \"stars\": 3, \"text\": \"Pretty good, but could have used more Jason\"}, {\"reviewer\": \"Alice\", \"stars\": 4, \"text\": \"The end was good, but a little unsettling\"}]}";
responseJSON = JSON.parse(moviereviewtext);
alert(responseJSON.title);
或者

var moviereviewtext = "{\"title\": \"Friday the 13th\", ...}";

这是Jquery,如果这是你要找的

var moviereviewtext = "{'title': 'Friday the 13th',  ...}";

moviereviewtext变量只是一个文本。不要使用
eval
解析JSON,它速度慢、调试困难且危险。使用(如果您想支持较旧的浏览器,请结合使用)。重复:您可能想重新阅读这个问题(实际上与JSON没有太多关系)。
          var myVariable = $.ajax({
           url: '/path/to/url',
           dataType: 'json',
        },
           async: false,
           success: function(data){
                           // do whatever
           }
       });