java - 用漂亮的字体编写 JSON 文件

标签 java json gson 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 在评论中所说,一些程序会去除换行符,因此查看这些程序(例如记事本)中的输出可能会使它们看起来“丑陋”。确保您在正确显示换行符的程序中查看它们,例如 Notepad++。

关于java - 用漂亮的字体编写 JSON 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33785493/

相关文章:

java - 在 Spring Boot 中实现模型继承有奇怪的数据存储库行为

java - 等待图片下载完毕 Firebase

c# - C# 类如何处理 JSON 中的美元符号?

android - JSONException:索引 5 超出范围 [0..5)

java - GSON 对象 (RESTful api)

java - "Expected BEGIN_OBJECT but was STRING at line 1 column 1"

java - 在 Android 应用程序中匹配联系人号码

php - Laravel返回JSON中的模型关系

android - 使用 gson 库将自定义对象的 ArrayList 转换为 JSON,检索这些自定义对象时出现 ClassCastException

java - 在 JavaFX 中使用 ObjectBinding 进行双向绑定(bind)