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

时间:2012-07-02 08:45:44

标签: javascript json

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 + ")");

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

5 个答案:

答案 0 :(得分:2)

难道你没有忘记逃避引用吗?

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

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

或那

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

答案 1 :(得分:1)

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);

你在追求JSON.parse()吗?

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

另外,我相信你忘了逃脱你的moviereviewtext变量。

答案 2 :(得分:0)

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

$.get(url, options).done(function(obj) { 
    // access the object fields here
    var title = obj.title;
    ...
})

jQuery不仅为您处理浏览器不兼容性,它还解析JSON,因此您的回调函数将直接接收解码对象。

答案 3 :(得分:0)

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

          var myVariable = $.ajax({
           url: '/path/to/url',
           dataType: 'json',
        },
           async: false,
           success: function(data){
                           // do whatever
           }
       });

答案 4 :(得分:-1)