用JSON描述不同类的数据

时间:2014-09-11 18:41:21

标签: json jsonschema

有什么方法可以在JSON中编码一个值,它是一组预定义类之一,还有特定于类的属性?我还要求使用json-schema完全验证格式(包括不存在不需要的属性)。

一个例子是:它是具有特定半径的球体,或具有特定尺寸的立方体。

此示例的可能编码是:

{"class": "sphere", "sphereRadius": 1.6}
{"class": "cube", "cubeSizeX": 1, "cubeSizeY": 2, "cubeSizeZ": 3}

但我不知道是否可以定义一个描述上述格式的json模式。当且仅当sphereRadius等于“sphere”时,我才需要指定class必须存在。

我打算在组合json-editor [1]中使用它,它将构建基于模式的用户界面。结果应该类似于选择类的下拉菜单,以及输入特定于类的信息的一组字段。

[1] https://github.com/jdorn/json-editor

1 个答案:

答案 0 :(得分:1)

您可能需要oneOf,其中每个选项都有例如:

"properties": {
    "class": {"enum": ["sphere"]}
}

以及任何特定于球体的约束。您描述的下拉界面听起来像是"oneOf"子句的良好表示,因此适合。