多语言序列化
跨语言对象图序列化
序列化内置类型
Apache Fory™ 可以自动序列化编程语言的常见数据类型:primitive numeric types, string, binary, array, list, map 等。
Java
import org.apache.fory.*;
import org.apache.fory.config.*;
import java.util.*;
public class Example1 {
public static void main(String[] args) {
Fory fory = Fory.builder().withLanguage(Language.XLANG).build();
List<Object> list = ofArrayList(true, false, "str", -1.1, 1, new int[100], new double[20]);
byte[] bytes = fory.serialize(list);
// bytes can be data serialized by other languages.
fory.deserialize(bytes);
Map<Object, Object> map = new HashMap<>();
map.put("k1", "v1");
map.put("k2", list);
map.put("k3", -1);
bytes = fory.serialize(map);
// bytes can be data serialized by other languages.
fory.deserialize(bytes);
}
}
Python
import pyfory
import numpy as np
fory = pyfory.Fory()
object_list = [True, False, "str", -1.1, 1,
np.full(100, 0, dtype=np.int32), np.full(20, 0.0, dtype=np.double)]
data = fory.serialize(object_list)
# bytes can be data serialized by other languages.
new_list = fory.deserialize(data)
object_map = {"k1": "v1", "k2": object_list, "k3": -1}
data = fory.serialize(object_map)
# bytes can be data serialized by other languages.
new_map = fory.deserialize(data)
print(new_map)