Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java POJO到字节数组与POJO到json_Java_Json_Serialization - Fatal编程技术网

Java POJO到字节数组与POJO到json

Java POJO到字节数组与POJO到json,java,json,serialization,Java,Json,Serialization,我是Java的新手。我只是混淆了序列化和反序列化。 所以,我不知道我应该用哪一个 我查了一下,发现Boon,Jackson,GSON(我目前使用的是GSON,但有些文章使用了Jackson和Boon)用于JSON序列化。并将对象序列化为字节数组或二进制对象。 只是,哪一个更快,我应该选择哪一个? 我将为我的简单应用程序制作此文件,保存当前状态、文档和其他内容。 提前感谢:)序列化数据意味着将它们转换为字节序列 这个序列可以解释为一个可读字符序列,如json、xml、yaml等 同一序列也可以是人


我是Java的新手。我只是混淆了序列化和反序列化。 所以,我不知道我应该用哪一个
我查了一下,发现Boon,Jackson,GSON(我目前使用的是GSON,但有些文章使用了Jackson和Boon)用于JSON序列化。并将对象序列化为字节数组或二进制对象。
只是,哪一个更快,我应该选择哪一个?
我将为我的简单应用程序制作此文件,保存当前状态、文档和其他内容。


提前感谢:)

序列化数据意味着将它们转换为字节序列

这个序列可以解释为一个可读字符序列,如json、xml、yaml等

同一序列也可以是人类无法读取的二进制数据序列

每种序列化方法都有其优缺点

人性化阅读的Pro:

  • 许多现有库用于序列化反序列化数据
  • 数据可以很容易地调试
  • 许多现有的库和API都使用此解决方案
缺点:

  • 需要很多字节
  • 序列化和反序列化过程可能很困难,而且耗时
二进制数据的利弊:

赞成者:

  • 更快的序列化-反序列化过程
  • 通过网络传输的数据更少
缺点:

  • 难以读取通过网络传输的数据
  • 不只是相同数据的一种表示(例如BigEndian或Not)

如果性能不重要(我想在您的情况下并不重要),我建议您使用人类可读的格式。@MyGGaN:如果性能不重要,我应该选择哪种格式?我目前正在使用ByteArrayBuffer(第二天可能是apache.common:D)将POJO序列化为字节数组。(我通过节俭传递字节)。因此,我只是从某个角度考虑json。现在我只能用JSON vs Base64 vs byte array了。现在太复杂了。我已经解决了我的问题,但这是我找到的正确答案。谢谢:)