我有一个tsv文件,其中第4列是来自Web服务的json输出。例如:
{"title":"GloMop","fullText":"home page; file:/C:\\unzipped\\pythia—demo—pages\\pythia\\index.html, White Paper. Dated Jul. 6, 2005,.(Downloaded Jul. 6, 2005), 11 pgs"}
我正在阅读tsv文件,当我读取第4列时,我看到以下输出:
{"title":"GloMop","fullText":"home page; file:/C:\unzipped\pythia—demo—pages\pythia\index.html, White Paper. Dated Jul. 6, 2005,.(Downloaded Jul. 6, 2005), 11 pgs"}
并使用gson
将其解析为json,我看到com.google.gson.JsonSyntaxException: com.google.gson.stream.MalformedJsonException
。
为了避免这种情况,我尝试转义\
,并将replace("\\", "\\\\")
添加到成功读取的第4列。
但是,现在的问题是,有另一个json字符串如下,它失败与com.google.gson.JsonSyntaxException: com.google.gson.stream.MalformedJsonException
:
第一个
我甚至尝试过使用下面的json字符串代码来转义相同的字符串,但在com.google.gson.JsonSyntaxException: com.google.gson.stream.MalformedJsonException
中仍然失败:
private static String escapeJson(String raw) {
String escaped = raw;
escaped = escaped.replace("\\", "\\\\");
escaped = escaped.replace("\"", "\\\"");
escaped = escaped.replace("\b", "\\b");
escaped = escaped.replace("\f", "\\f");
escaped = escaped.replace("\n", "\\n");
escaped = escaped.replace("\r", "\\r");
escaped = escaped.replace("\t", "\\t");
escaped = escaped.replace("/", "\\/");
return escaped;
}
请让我知道是否有任何方法来确保字符很好地转义和处理的json?
1条答案
按热度按时间lhcgjxsq1#
这个工作没有任何问题;
输出为