一句話解釋Java中的序列化和反序列化
好多技術名詞特別傻x,取一堆特別繞的名詞,然后把人繞的云里霧里,尤其是對初學者,實際就是一句話的事兒。
實際上,什么是Java中的序列化和反序列化?。?/p>
序列化和反序列化的本質就是將Java對象與JSON數據之間進行轉換!
說白了,
反序列化:就是后端工程師,把前端扔過來的JSON報文(本質上就是一個字符串),給在接口Controller這里解析了(JSON.parseObject),然后解析成Java對象,以便去代碼里去使用。
序列化:就是上面說的,這個Java對象用完了,然后還得傳回給前端,那就把這個用完的Java對象(含修改),再給它拼成一個JSON報文(JSON.toJSONString)(本質上也就是一個字符串)再給它扔回去。
就這么簡單的事兒。
那么看懂了就不用看下面了,下面補充個詳細地說法:
序列化和反序列化的本質就是將Java對象與JSON數據之間進行轉換。
反序列化(Deserialization):
反序列化是將 JSON 字符串 轉換回 Java 對象 的過程。
在這個過程中,JSON 字符串會被解析并映射到 Java 對象的各個屬性中,重新生成一個對象。
例如,使用 Fastjson 庫的JSON.parseObject()方法來將JSON字符串反序列化為Java對象。反序列化的目的是將從外部系統、文件或網絡接收到的JSON數據重新轉化為Java對象,以便在應用程序中處理。
String jsonString = "{ \"containerNeedList\": [ ... ] }"; // JSON 字符串
ContainerV1 container = JSON.parseObject(jsonString, ContainerV1.class); // 將 JSON 字符串反序列化為 Java 對象
序列化(Serialization):
序列化是將Java對象轉換成JSON字符串的過程。
在這個過程中,Java 對象會被轉換成一個JSON格式的數據,通常用于數據交換、存儲或傳輸。
例如,使用Fastjson庫的JSON.toJSONString()方法來將一個Java對象序列化成JSON字符串。序列化的目的是方便將對象的數據結構傳輸到其他系統、存儲到文件或者數據庫中,或者通過網絡發(fā)送給其他客戶端或服務。
ContainerV1 container = new ContainerV1();
// 設置 container 的屬性...
String jsonString = JSON.toJSONString(container); // 將 container 對象序列化為JSON 字符串
總結:
序列化:將Java對象轉化為JSON 字符串(或其他格式)。
反序列化:將JSON字符串轉化回Java對象。
因此,序列化和反序列化確實就是將Java對象和JSON數據進行相互轉換的過程,通常用于數據交換和持久化。