我从网页中提取了一个巨大的字符串,并希望以Json样式设置样式/格式化。提取的String最初是一种Json格式,但现在提取后这只是一个长字符串。我使用了JsonObj并且格式化程序确实很好用,他从底部到顶部移动文本改变了一般的行顺序等。
格式化后http://pastebin.com/exwwc6SY JsonFile
http://pastebin.com/WHXtE36G提取的字符串
这里是代码
try {
FileWriter fw = new FileWriter("/tmp/1.txt");
String line = ROUtils.getStringFromInputStream(urlConnection.getInputStream());
System.out.println(line);
String jsonObj = new JSONObject(line).toString(2);
fw.write(jsonObj);
} catch (IOException e) {
e.printStackTrace();
}
getStringFromInputStream()方法
public static String getStringFromInputStream(InputStream is) {
BufferedReader br = null;
StringBuilder sb = new StringBuilder();
String line;
try {
br = new BufferedReader(new InputStreamReader(is));
while ((line = br.readLine()) != null) {
sb.append(line);
}
} catch (Exception e) {
throw new RuntimeException(e);
} finally {
if (br != null) {
try {
br.close();
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}
return sb.toString();
}
我发现了一个新问题。 JsonObj文件不等于原始字符串。 我比较了字符数(没有空格)。原始字符串有96311,JsonObj有92636.任何人都可以给我一个提示,我该怎么办?
答案 0 :(得分:0)
答案 1 :(得分:0)
我发现了为什么我在转换后错过了4000个字符。 我忘了关闭FileWriter!
iostream
close()方法调用flush()方法,以便可以写下String的最后一个缓冲部分。
谢谢你们。