Thrift Struct等效于JSON模式

时间:2017-10-26 00:02:48

标签: thrift

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

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

所以,这里有一个struct xyz,它可以是null或者可以有两个属性" abd"和" dfs"。我想为此目的使用union,但是我必须为" abd"创建对象。和" dfs"。所以,它会是这样的: -

union XYZ {
   1: SomeStruct someStruct
}

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

现在,问题在于它现在希望有一些关键" someStruct"它应该进入xyz。因此,这并不完全等同于我的需要。

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

1 个答案:

答案 0 :(得分:1)

据我所知,这两个案例是" oneOf"请参考xyz可能是什么://Read the stream InputStream is = new FileInputStream(jsonFilename); //Convert to string String jsonTxt = IOUtils.toString(is); //Create JSONArray from read JSON string JSONArray arr = new JSONArray(jsonTxt); 或带有一些(可选)数据的非null有效实例。

null

struct XYZ { 1: optional string abd 2: optional string dfs } struct UsesXyz { 1: optional Xyx } 案例是null的实例未设置成员的情况。换句话说,UsesXyz案例未反映在Xyz的声明中,但它是如何使用的