我试图从Freebase中找到某个字符串的相关类型列表,比方说我输入Jordan,然后我会有一个类型country,person,athlete等的列表。
我找到了几种查询方法,例如:
试图让JSON失败,使用:
$.getJSON('http://api.freebase.com/api/service/search?query=jordan',function (data) {
console.log(data);
});
还有另一个query给了我更好的结果,因为我只在这里获得类型,但我也无法从中获取JSON文件。
非常感谢您的帮助。
答案 0 :(得分:1)
您的问题可能与freebase关系不大,更多的事情是您无法执行跨域http请求。您正在从api.freebase.com请求数据,但您可能正在另一个域中托管此页面。
您可以使用JSONP机制来规避该限制,这里有一些文档:
http://api.jquery.com/jQuery.getJSON/
阅读JSONP部分。
另外两点:
您是否正在尝试搜索与“jordan”一词匹配的所有实体,或者您是否正在寻找名为“jordan”的所有实体?最好的办法是使用/ search API而不是/ mqlread,它用于结构化数据库查询。
您还在使用已弃用的旧API。以下是有关新API的一些文档:
http://wiki.freebase.com/wiki/API
以下是您的请求的外观(请注意,您需要一个用于生产的API密钥): https://www.googleapis.com/freebase/v1/search?query=jordan&mql_output= [{%22name%22%20:%20null,%22type%22:[]}]