用漂亮的打印写入 JSON 文件
Writing JSON file with pretty print
在下面的代码中,我们将 JSON 类型的对象和数组写入文本文件:
/**
* @param args the command line arguments
*/
public static void main(String[] args) throws IOException {
JSONObject obj = new JSONObject();
obj.put("Name", "crunchify.com");
obj.put("Author", "App Shah");
JSONArray company = new JSONArray();
company.add("Compnay: eBay");
company.add("Compnay: Paypal");
company.add("Compnay: Google");
obj.put("Company List", company);
// try-with-resources statement based on post comment below :)
try (FileWriter file = new FileWriter("file.txt")) {
Gson gson = new GsonBuilder().setPrettyPrinting().create();
JsonParser jp = new JsonParser();
JsonElement je = jp.parse(obj.toJSONString());
String prettyJsonString = gson.toJson(je);
System.out.println(prettyJsonString);
file.write(prettyJsonString);
System.out.println("Successfully Copied JSON Object to File...");
System.out.println("\nJSON Object: " + obj);
file.flush();
file.close();
}
}
}
在下面的代码中,我们漂亮地打印了 JSONtostring:
Gson gson = new GsonBuilder().setPrettyPrinting().create();
JsonParser jp = new JsonParser();
JsonElement je = jp.parse(obj.toJSONString());
String prettyJsonString = gson.toJson(je);
System.out.println(prettyJsonString);
prettyJsonString 的打印结果为:
{
"Name": "crunchify.com",
"Author": "App Shah",
"Company List": [
"Compnay: eBay",
"Compnay: Paypal",
"Compnay: Google"
]
}
但是当我们将prettyJsonString写入文件时,结果是线性的,不像上面的结果。
file.write(prettyJsonString);
{ "Name": "crunchify.com", "Author": "App Shah", "Company List": [ "Compnay: eBay", "Compnay: Paypal", "Compnay: Google" ]}
我们如何写入文件并使结果像上面 prettyJsonString 的 System.out.prinln 一样漂亮?
谢谢分配
正如 Nivas 在评论中所说,某些程序会去除换行符,因此在这些程序(例如记事本)中查看输出可能会使它们看起来 "ugly"。确保您在能正确显示换行符的程序中查看它们,例如 Notepad++。
在下面的代码中,我们将 JSON 类型的对象和数组写入文本文件:
/**
* @param args the command line arguments
*/
public static void main(String[] args) throws IOException {
JSONObject obj = new JSONObject();
obj.put("Name", "crunchify.com");
obj.put("Author", "App Shah");
JSONArray company = new JSONArray();
company.add("Compnay: eBay");
company.add("Compnay: Paypal");
company.add("Compnay: Google");
obj.put("Company List", company);
// try-with-resources statement based on post comment below :)
try (FileWriter file = new FileWriter("file.txt")) {
Gson gson = new GsonBuilder().setPrettyPrinting().create();
JsonParser jp = new JsonParser();
JsonElement je = jp.parse(obj.toJSONString());
String prettyJsonString = gson.toJson(je);
System.out.println(prettyJsonString);
file.write(prettyJsonString);
System.out.println("Successfully Copied JSON Object to File...");
System.out.println("\nJSON Object: " + obj);
file.flush();
file.close();
}
}
}
在下面的代码中,我们漂亮地打印了 JSONtostring:
Gson gson = new GsonBuilder().setPrettyPrinting().create();
JsonParser jp = new JsonParser();
JsonElement je = jp.parse(obj.toJSONString());
String prettyJsonString = gson.toJson(je);
System.out.println(prettyJsonString);
prettyJsonString 的打印结果为:
{
"Name": "crunchify.com",
"Author": "App Shah",
"Company List": [
"Compnay: eBay",
"Compnay: Paypal",
"Compnay: Google"
]
}
但是当我们将prettyJsonString写入文件时,结果是线性的,不像上面的结果。
file.write(prettyJsonString);
{ "Name": "crunchify.com", "Author": "App Shah", "Company List": [ "Compnay: eBay", "Compnay: Paypal", "Compnay: Google" ]}
我们如何写入文件并使结果像上面 prettyJsonString 的 System.out.prinln 一样漂亮? 谢谢分配
正如 Nivas 在评论中所说,某些程序会去除换行符,因此在这些程序(例如记事本)中查看输出可能会使它们看起来 "ugly"。确保您在能正确显示换行符的程序中查看它们,例如 Notepad++。