【问题标题】:Writing JSON Object as Object not as String to File将 JSON 对象作为对象而不是作为字符串写入文件
【发布时间】:2019-02-01 05:08:39
【问题描述】:

我想将 JSON 对象写入文件。目前我尝试使用 ObjectMapper 和 Gson,但他们将 JSON 写入为 JSONString,因此输出文件具有 JSON 字符串而不是对象。那么有没有办法将 JSON 对象写为 Object 而不是 String

JSONObject responseData = new JSONObject(response.getBody().toString());
org.json.simple.JSONObject object  = new
org.json.simple.JSONObject(responseData.toMap());
ObjectMapper objMapper = new ObjectMapper();
objMapper.writeValue(new File(path) , object);

现在上面的代码将 JSON 对象作为字符串写入文件而不是 JSON 对象。

【问题讨论】:

  • 您能否详细解释一下。你真正想要什么以及将输出什么。
  • 我想要的是,当 JSON 写入文件时,它不应该在一行中显示为字符串。而应该是 JSON 对象格式。
  • 通过这个链接你会得到stackoverflow.com/questions/47379171/…
  • 有什么理由不喜欢字符串而不是文件并希望存储在 JSONObject 中?
  • 您可以探索 BSON 格式:json-bson-converter.appspot.com

标签: java json gson objectmapper


【解决方案1】:

不要使用 ObjectMapper。您可以使用 org.json.simple.* 包本身来实现这一点。

    package com.tutorial

    import java.io.FileWriter;
    import java.io.IOException;

    import org.json.simple.JSONObject;

    public class JosnObjectWrite {

        public static void main(String[] args) throws IOException {

            JSONObject responseData = new JSONObject(response.getBody().toString());
            JSONObject object  = new JSONObject(responseData.toMap());

            try (FileWriter file = new FileWriter("/Users/<username>/Documents/file1.txt")) {
                file.write(object.toJSONString());
                System.out.println("Successfully Copied JSON Object to File...");
                System.out.println("\nJSON Object: " + object);
            }
        }
    }

【讨论】:

  • 您好,感谢您的建议。但是这里的对象也被写成字符串,并且会出现在文件的一行中。我需要它显示为 JSONObject 。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-02
  • 2013-02-23
  • 1970-01-01
  • 2020-05-05
  • 2011-10-29
  • 1970-01-01
相关资源
最近更新 更多