【发布时间】:2024-01-14 18:43:02
【问题描述】:
我注意到这种可以将$ref 用于其他声明对象的规范形式是一种可用于许多用例的模式。
这个有名字吗?有图书馆吗?
我可以看到这对于您希望能够序列化为 JSON / YAML 文件并将其反序列化为内存中的对象的关系数据的情况非常有用。
这是我所追求的一个例子:
我想序列化这个引用其他对象的类。
class Node {
Node next;
Node prev;
}
可以这样序列化:
{
"nodes": {
"0": {
"next": {
"$ref": "#/nodes/1"
}
},
"1": {
"prev": {
"$ref": "#/nodes/0"
}
}
}
}
或许
{
"next": {
"prev": {
"$ref": "#" // The root
}
}
}
本质上,这是一种用我所追求的树结构序列化类似图形的数据的方法。
【问题讨论】:
-
$ref是JSON Reference。这是完整的 OpenAPI 规范:github.com/OAI/OpenAPI-Specification/blob/master/versions/…。这是你要找的吗? -
不完全。我的问题是是否有构建库来利用这个
$ref标识符,这样当您反序列化 JSON 时,只会在内存中创建一个对象 - 但它会被使用 @987654329 引用它的每个其他对象引用@ 签名。反之亦然,该库还允许您获取内存中的任何对象并将其序列化为 JSON。如果这些对象在多个位置被引用,它将用$ref替换对其他对象的引用。
标签: json serialization yaml deserialization openapi