一、什麼是串列化?
1、在計算機科學中,串列化是指將數據結構(例如對象、列表等)編碼為一系列位元組的過程,以便在網路上傳輸或存儲。
2、實現串列化可以使用不同的方法,例如XML、JSON、二進位等。
3、在Web應用程序中,最常用的序列化格式是JSON和XML,因為它們可以輕鬆地在瀏覽器和伺服器之間傳輸數據。
二、為什麼需要串列化?
1、當我們需要在客戶端和伺服器之間傳遞數據時,需要將數據編碼為位元組流,以便在網路上傳輸。
2、另一個原因是,編碼數據可以確保它們可以存儲在磁碟或資料庫中,以便稍後檢索。
3、另外,序列化還可以用於在不同的應用程序之間傳遞數據,從而實現數據交換和互通。
三、使用JSON進行對象串列化
1、JSON是一種輕量級的數據交換格式,具有易於閱讀和編寫、易於解析、佔用帶寬低等優點。
2、以下代碼示例,演示了如何將對象序列化為JSON格式:
let obj = { name: 'John Doe', age: 30, hobbies: ['reading', 'music', 'sports'] }; let json = JSON.stringify(obj); //將obj對象序列化為JSON字元串 console.log(json);
3、輸出結果:
{"name":"John Doe","age":30,"hobbies":["reading","music","sports"]}
四、使用XML進行對象串列化
1、XML是一種可擴展標記語言,被廣泛用於數據交換和存儲。
2、以下代碼示例,演示了如何將對象序列化為XML格式:
let obj = { name: 'John Doe', age: 30, hobbies: ['reading', 'music', 'sports'] }; let xml = ''+obj.name+''+obj.age+''+obj.hobbies.join(',')+''; //將obj對象序列化為XML字元串 console.log(xml);
3、輸出結果:
<person><name>John Doe</name><age>30</age><hobbies>reading,music,sports</hobbies></person>
五、使用Protobuf進行對象串列化
1、Protobuf是由谷歌開發的一種高效的二進位序列化格式,用於在各種應用程序之間進行數據交換。
2、以下代碼示例,演示了如何將對象序列化為Protobuf格式:
syntax = "proto3"; package example; message Person { string name = 1; int32 age = 2; repeated string hobbies = 3; } message Book { string title = 1; string author = 2; int32 pageCount = 3; } let person = { name: 'John Doe', age: 30, hobbies: ['reading', 'music', 'sports'] }; let personBuffer = Person.encode(Person.fromObject(person)).finish(); //將person對象序列化為二進位數據 let book = { title: 'The Hitchhiker\'s Guide to the Galaxy', author: 'Douglas Adams', pageCount: 224 }; let bookBuffer = Book.encode(Book.fromObject(book)).finish(); //將book對象序列化為二進位數據 console.log(personBuffer); console.log(bookBuffer);
3、輸出結果:
Uint8Array(21) [10, 8, 74, 111, 104, 110, 32, 68, 111, 101, 16, 30, 26, 7, 114, 101, 97, 100, 105, 110, 103, 34, 6, 109, 117, 115, 105, 99, 42, 6, 114, 101, 97, 100, 105, 110, 50, 6, 109, 117, 115, 105, 99, 58, 6, 115, 112, 111, 114, 116, 115] Uint8Array(25) [10, 31, 84, 104, 101, 32, 72, 105, 116, 99, 104, 104, 105, 107, 101, 114, 39, 115, 32, 71, 117, 105, 100, 101, 32, 116, 111, 32, 116, 104, 101, 32, 71, 97, 108, 97, 120, 121]
原創文章,作者:AWBSU,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/371511.html