序列化(Serialization)是将对象或数据结构转换为可存储或传输的格式(如 JSON、二进制、XML 等)的过程。不同编程语言和框架中,Field 字段(通常指类/结构体的属性)的序列化方式有所不同。以下是常见场景的示例:
pickle(Python 专用二进制格式)import pickle
class MyClass:
def __init__(self, name, value):
self.name = name
self.value = value
obj = MyClass("test", 123)
serialized = pickle.dumps(obj) # 序列化为字节
deserialized = pickle.loads(serialized) # 反序列化
json(需自定义转换)import json
class MyClass:
def __init__(self, name, value):
self.name = name
self.value = value
def to_dict(self):
return {"name": self.name, "value": self.value}
obj = MyClass("test", 123)
json_str = json.dumps(obj.to_dict()) # 需要先转为字典
dataclasses + jsonfrom dataclasses import dataclass, asdict
import json
@dataclass
class MyClass:
name: str
value: int
obj = MyClass("test", 123)
json_str = json.dumps(asdict(obj))
Serializable 接口import java.io.*;
class MyClass implements Serializable {
private String name;
private int value;
public MyClass(String name, int value) {
this.name = name;
this.value = value;
}
}
// 序列化
MyClass obj = new MyClass("test", 123);
try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("data.bin"))) {
oos.writeObject(obj);
}
// 反序列化
try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream("data.bin"))) {
MyClass deserialized = (MyClass) ois.readObject();
}
import com.fasterxml.jackson.databind.ObjectMapper;
class MyClass {
public String name;
public int value;
}
ObjectMapper mapper = new ObjectMapper();
MyClass obj = new MyClass();
String json = mapper.writeValueAsString(obj); // 序列化为 JSON
const obj = { name: "test", value: 123 };
const jsonStr = JSON.stringify(obj); // 序列化
const parsed = JSON.parse(jsonStr); // 反序列化
const obj = {
name: "test",
value: 123,
toJSON() {
return { name: this.name, value: this.value }; // 自定义序列化逻辑
}
};
JSON.stringify(obj);
encoding/jsonpackage main
import (
"encoding/json"
"fmt"
)
type MyClass struct {
Name string `json:"name"` // 通过 tag 指定字段名
Value int `json:"value"`
}
func main() {
obj := MyClass{Name: "test", Value: 123}
data, _ := json.Marshal(obj) // 序列化
fmt.Println(string(data))
}
System.Text.Jsonusing System.Text.Json;
public class MyClass {
public string Name { get; set; }
public int Value { get; set; }
}
var obj = new MyClass { Name = "test", Value = 123 };
string json = JsonSerializer.Serialize(obj);
BinaryFormatter(已过时,不推荐)// 旧版 .NET 中可用,但存在安全风险
private,需通过 getter/setter 或注解暴露。pickle)。如果需要针对特定语言或框架的详细示例,请补充说明!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。