【问题标题】:Object Sereialization, JAVA, Javascript对象序列化,JAVA,Javascript
【发布时间】:2015-04-02 05:21:39
【问题描述】:

我有 n 个对象,其属性正在使用 REST 协议发送到前端。在那里,对象被作为 XML 文件接收,然后使用 JSON.parser 解析为 JSON。现在我的目标是将此 JSON 文件保存在磁盘上一段时间。我尝试序列化对象并存储它,但它以二进制/十六进制格式存储。我需要它是 xml 或 JSON 格式。 有人可以帮我吗? 前端是 JavaScript,后端是 Java。

【问题讨论】:

  • 这绝对是JS的问题。由于后端 Java 已经通过 REST/http 以 XML 格式发送消息,因此已经将其编组为文本。

标签: java javascript json


【解决方案1】:

为什么需要将 JSON 文件保存在客户端磁盘上,不建议这样做。相反,您应该使用HTML5 web storage

【讨论】:

  • 我尝试通过序列化对象将其保存在服务器端。但它是不可读的格式。我如何使它可读?
  • 您要保存在服务器端还是客户端?如果您打算保存在服务器端,请在 JSON 或 XML 上使用 toString 方法,先转换为字符串,然后保存在文件中。
【解决方案2】:

您使用的是 JSON.simple 吗?如果是这样,他们的页面上有几个示例用于将字符串转换为 json 并返回。在这种情况下,您已经有一个反序列化的对象,因此您只需要将其序列化为字符串,请参阅https://code.google.com/p/json-simple/wiki/DecodingExamples

如果你有你的 json 对象作为地图,你可以

String jsonString = JSONValue.toJSONString(json);

或者如果它已经是一个 JSONObject 那么简单

String jsonString = json.toJSONString();

然后将 jsonString 写入您的 .json 文件。

FileWriter file = new FileWriter("/path/to/file.json");
file.write(jsonString);
file.flush();
file.close();

抱歉,如果这不是您正在使用的库。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多