json - Apache Tika 和 Json

标签 json apache-tika

当我使用 Apache Tika 从内容中确定文件类型时。 XML 文件很好,但不是 json。如果内容类型是 json,它将返回“text/plain”而不是“application/json”。

有什么帮助吗?

public static String tiKaDetectMimeType(final File file) throws IOException {
    TikaInputStream tikaIS = null;
    try {
        tikaIS = TikaInputStream.get(file);
        final Metadata metadata = new Metadata();
        return DETECTOR.detect(tikaIS, metadata).toString();
    } finally {
        if (tikaIS != null) {
            tikaIS.close();
        }
    }
}

最佳答案

JSON 基于纯文本,因此当仅提供要使用的字节时,Tika 将其报告为这样并不奇怪。

您的问题是您还没有提供文件名,因此 Tika 无法使用该文件名。如果你有,蒂卡可以说 bytes=plain text + filename=json => json并给你你期望的答案

您缺少的行是:

metadata.set(Metadata.RESOURCE_NAME_KEY, filename);

所以固定的代码片段将是:
tikaIS = TikaInputStream.get(file);
final Metadata metadata = new Metadata();
metadata.set(Metadata.RESOURCE_NAME_KEY, file.getName());
return DETECTOR.detect(tikaIS, metadata).toString();

有了这个,你会得到你期望的 JSON 答案

关于json - Apache Tika 和 Json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19419747/

相关文章:

javascript - 使用 jquery 和 json 显示数组中的所有项目

java - 如何区分可搜索的 pdf 和不可搜索的 pdf?

apache-tika - 如何使用TIka读取大文件?

java - 通过Java在RTF文件中搜索单词

用于嵌套 ZIP 文件处理的 Java 实用程序库

Solr ExtractingRequestHandler 在链接中提取 "rect"

javascript - Nodejs 返回 Blockchain Rates API 的完整 JSON,但我无法访问其中的特定对象。为什么?

jquery - 使用 jQuery 读取 JSON 文件

json - 索引 jsonb 以进行字段的数字比较

php - 根据 Jquery Ajax 返回的值填充第二个下拉列表