ConceptNet 5.5 和 JSON 格式

ConceptNet 5.5 and JSON format

之前的ConceptNet 5.4API版本returns纯文本JSON格式(http://conceptnet5.media.mit.edu/data/5.4/c/en/library).

有人熟悉新的 ConceptNet 5.5 API 吗?为什么查询 returns html 来源而不是像以前版本 (http://api.conceptnet.io/related/c/en/library) 那样的纯文本?我没有找到 select 纯文本 JSON 格式的选项。


因此,此 Java 代码不适用于新版本。

JsonReader jsonReader = Json.createReader(new URL("http://conceptnet5.media.mit.edu/data/5.4/c/en/library").openStream());

API 响应的格式取决于您的客户端发送的 Accept: header。 (我发现当 Django REST Framework 这样做时这个行为真的很方便,所以我在 ConceptNet 的 API 代码中实现了它。)默认响应格式是 JSON.

如果您在命令行 运行 curl http://api.conceptnet.io/related/c/en/library,例如,您将看到普通的 un-indented JSON。如果您在 Web 浏览器中访问它,它会缩进并包含在 HTML 中,因此它可以是 syntax-highlighted 和链接。区别在于 Web 浏览器发送 header Accept: text/html.

我认为这是您使用的 JsonReader 中的一个错误,它明确发送了 Accept: text/html,但它期待的是 JSON 响应,而不是 HTML。查看是否可以通过配置它发送的 header 来解决它。

(如果无法避免获得 HTML,请注意普通 JSON 也出现在 HTML 中,位于 <script type="application/ld+json"> 标签内。)