0

假设我在 freebase 中进行以下查询,

[{
"mid": "/m/02y7vp",
"name": null
}]

我得到的答案是,

{“结果”:[{
“名称”:“G\u00fcnter Verheugen”,
“中”:“/m/02y7vp”
}]
}

我想在 MQL 中构造反向查询,

[{
"mid": null,
"name": "G\u00fcnter Verheugen"
}]

但是这个查询不起作用。我还尝试了 freebase here建议的编码,但这也不起作用。

我使用的 unicode 编码有问题吗?

编辑

这就是我正在做的事情:

1)将查询复制粘贴到网址中

https://www.googleapis.com/freebase/v1/mqlread?query=[ {"mid": "/m/02y7vp","name": null}]

2) 将结果下载到“mqlread”文件中。less mqlread显示以下内容:

{“结果”:[{
“名称”:“G\u00fcnter Verheugen”,
“中”:“/m/02y7vp”
}]
}

3) 将查询 url 中的查询字段替换为所需的反向查询。

最终,我想使用 Java 进行类似的查询。

4

1 回答 1

1

MQLread API 返回 JSON,因此需要对其进行解码您可以在 json.org 上找到定义,但大多数语言都可以轻松解码。\u 转义引入了 Unicode 代码点的四位编码。\u00fc 表示的 Unicode 代码点是“ü”(http://www.fileformat.info/info/unicode/char/fc/index.htm

尽管 API 返回以这种方式编码的名称,但它会在查询中同时接受字符和 Unicode 代码点。您没有提供您正在使用的第二个 URL,因此无法调试,无论您遇到的任何问题都与 API 无关,因为这两种方法都有效:

https://www.googleapis.com/freebase/v1/mqlread/?lang=/lang/en&query=[{"mid":null, "name":"G\u00fcnter Verheugen"}]
https://www.googleapis.com/freebase/v1/mqlread/?lang=/lang/en&query=[{"mid":null, "name":"Günter Verheugen"}]
于 2014-07-15T16:57:18.260 回答