2
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 并将其分配给变量。怎么做?

4

5 回答 5

2

你没有忘记逃避你的报价吗?

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

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

或者那个

var moviereviewtext = "{'title': 'Friday the 13th',  ...}";
于 2012-07-02T09:01:10.050 回答
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 变量。

于 2012-07-02T09:00:53.430 回答
0

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

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

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

于 2012-07-02T08:58:54.293 回答
0

如果那是您正在寻找的东西,这就是 Jquery...

          var myVariable = $.ajax({
           url: '/path/to/url',
           dataType: 'json',
        },
           async: false,
           success: function(data){
                           // do whatever
           }
       });
于 2012-07-02T09:04:47.230 回答