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并将其分配给变量。怎么做?
答案 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)
http://forums.ext.net/showthread.php?6084-Consume-Web-Service-from-JavaScript-getting-JSON-response
我建议你使用JQuery而不是javascript: 检查一下:http://www.codeproject.com/Articles/37727/Prepare-a-JSON-Web-Service-and-access-it-with-JQue
检查一下,非常适合初学者:http://www.json.org/js.html
Beginner JavaScript: Working with JSON and Objects in JavaScript