我最近需要序列化JSON。在Java中,我们不能将其序列化为Java,因为它不实现serializable。我可以将其转换为字符串和序列化,同时将读取作为字符串检索并将字符串转换为JSON。
但是在反序列化之后转换为字符串进行序列化并将字符串转换为JSON会产生开销。
我正在考虑避免这种情况的解决方案是序列化&反序列化非常简单。我们可以用org.json。*中的每个类重写代码来实现可序列化的
我的问题是为什么JSON没有实现可序列化。 是否有任何具体原因可以避免这种情况
答案 0 :(得分:1)
实现Serializable
的对象通常使用本机Java序列化算法进行序列化(记录为here)。
JSON适用于任何语言,但本机Java序列化仅适用于Java(即便如此,它也非常脆弱)。因此,在这种情况下,实施Serializable
毫无意义。
答案 1 :(得分:-1)
为什么我们需要序列化?
序列化意味着将对象转换为byteStream,其目的是维护对象的状态。通过语言“状态”#39;它表示变量的值或对其他对象的引用。序列化后获得的字节流可以存储在数据库中,也可以通过网络与远程客户端/服务器进行通信。
使用序列化
使用序列化以便将来可以反序列化(我们可以获取对象的保存状态)。当我们反序列化时,我们指定我们希望转换的对象。
JSON表示JavaScript Object Notation。它是JavaScript对象的表示法,不是 java对象。它是一种符号,而不是一个实际的对象。
Java不知道如何阅读javascript对象,因此它不能序列化&反序列化JSON。所以当你将json转换为String时。 java知道如何序列化&反序列化String对象。