如何解决解析 tsv 文件中的 json 问题
我有一个 tsv 文件,其中第 6 列是 json。第 6 列如下:
{"person":[{"myinitials":"N.","myfamilyName":"Ishizuka"},{"myinitials":"K.I.","myfamilyName":"Ishikawa"},{"myinitials":"A.","myfamilyName":"Ukawa"},{"myinitials":"T.","myfamilyName":"Yoshié"}],"myTitle":"Calculation of $$K\nightarrow \\pi \\pi $$K→ππ decay amplitudes with improved Wilson Fermion"}
但是,当我使用 com.univocity.parsers.tsv.TsvParser
读取 tsv 文件时,我看到 json 如下所示:
{"person":[{"myinitials":"N.","myTitle":"Calculation of $$K
ightarrow \pi \pi $$K→ππ decay amplitudes with improved Wilson Fermion","publishedDate":"2013","art:remainingText":"arXiv:1311.0958"}
如果你看到上面的内容,那么它在 2 行而不是 1 行,因为 \n
在 json 输出中。因此,后续步骤失败,因为 json 无效
try (Reader inputReader = new InputStreamReader(new FileInputStream(new File(inputFile)),StandardCharsets.UTF_8)) {
TsvParserSettings settings = new TsvParserSettings();
settings.setMaxCharsPerColumn(25000000);
TsvParser parser = new TsvParser(settings);
List<String[]> parsedRows = parser.parseAll(inputReader);
Gson gson = new Gson();
for (int index = 0; index < parsedRows.size(); index++) {
String[] row = parsedRows.get(index);
....
// row[5] has json string
JsonReader reader = new JsonReader(new StringReader(row[5]));
reader.setLenient(true);
MyObject jsonFromApp = gson.fromJson(reader,MyObject.class);
// When I do toJson it fails
System.out.println(gson.toJson(jsonFromArt));
}
}
请告诉我如何处理此类情况?只是数据本身有这样的条目,我无法修改。
异常:
com.google.gson.JsonSyntaxException: com.google.gson.stream.MalformedJsonException: Invalid escape sequence at line 2 column 13 path $myTitle
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。