当我使用 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/