java - 在 Java 中将 XML 文件转换为 JSON 文件的最快方法是什么?
问题描述
我目前有一堆 XML 文件(每个大小为 16kb)需要转换为 JSON,然后写入新文件。我有一个可行的实现,但速度很慢。
我正在做的是抓取目录中的每个文件,将 XML 数据转换为字符串,使用 org.json 创建该字符串的 JSON 对象,然后使用 FileWriter 将其写入文件
import org.json.JSONObject;
import org.json.XML;
import java.io.*;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import org.apache.commons.io.FilenameUtils;
public class TestConvert {
public static void main(String[] args) {
final File xmlFolder = new File("C:\\files\\xml_files");
final File jsonFolder = new File("C:\\files\\json_files");
for(File fileEntry: xmlFolder.listFiles()){
try {
String xml = new String(Files.readAllBytes(fileEntry.toPath()), StandardCharsets.UTF_8);
JSONObject obj = XML.toJSONObject(xml);
String completeDir = jsonFolder + "\\" + FilenameUtils.removeExtension(fileEntry.getName()) + ".json";
FileWriter file = new FileWriter(completeDir);
obj.write(file);
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
这确实有效,但是我目前正在使用 ~370k XML 文件对其进行测试,运行时间超过 45 分钟。这似乎太过分了,我真的很想缩短完成它所需的时间。
解决方案
Underscore-java库有静态方法U.xmlToJson(xml)
。我是项目的维护者。
推荐阅读
- windows - 为什么 Android Studio 拒绝在 GitHub 上共享项目?
- javascript - 如何从Javascript为元素中的输入值设置值?
- bash - 使用 bash 的 ssh-remote 插件的代码命令
- python - 使用 POST 请求提交表单后出现错误 404
- c# - 安全问题 AspNetCore Identity
- c# - C# winforms 图形超大
- java - 使用 JUNIT5 运行 Cucumber 功能文件时无法过滤它们
- python - 在正则表达式上转换 TRIM
- pandas - pandas groupby.apply 0.23.4 和 0.24.2 之间的差异与深拷贝
- sql-server - SQL Server SCOPE_IDENTITY() 与 @@IDENTITY