在Ruby中,序列化和反序列化通常使用Marshal模块来实现。Marshal模块提供了一个简单的方式来将对象序列化为二进制数据,以便将其存储在文件中或通过网络传输。反序列化则是将二进制数据还原为原始对象。
以下是一个简单的示例:
# 序列化对象 data = https://www.yisu.com/ask/{ name:'Alice', age: 30, city: 'New York' } serialized_data = https://www.yisu.com/ask/Marshal.dump(data)'data.txt', 'w') { |file| file.write(serialized_data) } # 从文件中读取序列化数据并反序列化 serialized_data = https://www.yisu.com/ask/File.read('data.txt') data = https://www.yisu.com/ask/Marshal.load(serialized_data)"Alice" puts data[:age] # 输出 30 puts data[:city] # 输出 "New York"
在上面的代码中,我们首先将一个Hash对象序列化为二进制数据,并将其写入文件中。然后我们从文件中读取数据,并使用Marshal.load方法将其反序列化为原始对象。
请注意,Marshal序列化的数据只能在Ruby之间进行传递,因为它使用Ruby的内部数据结构来表示对象。如果需要与其他语言交互,可以考虑使用JSON或YAML等通用的数据格式。