微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

解析 tsv 文件中的 json 问题

如何解决解析 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 举报,一经查实,本站将立刻删除。