JSON 模式的 Thrift 结构等效项

Thrift Struct equivalent for the JSON Schema

说,我想获得等效的 Thrift Struct 以跟随

{
    "xyz": {
        "oneOf": [
            {
                "type": "null"
            },
            {
                "type": "object",
                "properties": {
                    "abd": {
                        "type" :"string"
                    },
                    "dfs": {
                        "type": "string",
                    }
                }
            }
        ]
    }
}

所以,这里有一个结构体 xyz,它可以为空,也可以有两个属性 "abd" 和 "dfs"。我考虑过为此目的使用 union,但问题是我必须为 "abd" 和 "dfs" 创建对象。所以,它会是这样的:-

union XYZ {
   1: SomeStruct someStruct
}

struct SomeStruct {
    1: optional string abd
    2: optional string dfs
}

现在,问题在于它现在期望有一些密钥 "someStruct" 它应该进入 xyz。因此这与我需要的不完全相同。

有人可以建议一些好的方法吗?

据我了解,"oneOf" 的两种情况指的是 xyz 可能是什么:null,或具有一些(可选)数据的非空有效实例。

struct XYZ {
    1: optional string abd
    2: optional string dfs
}


struct UsesXyz {
    1: optional Xyx
}

null 的情况是 UsesXyz 的实例不设置成员。也就是说,Xyz的declaration没有体现null的情况,而是used.