【问题标题】:JSON data enum typesJSON 数据枚举类型
【发布时间】:2017-07-12 08:46:41
【问题描述】:

我有一个这样的 JSON 对象。

var data={
"Company" : "XYZ",
"company" : ['RX','TX']
}

上面的 json 数据有 2 个键 Company,类型为字符串,类型为 enum 但不是数组(我不知道如何在 json 数据中表示 enum),因为 json schema 说它是一个数组。我希望它是枚举类型。

那么我将如何在 JSON 数据中表示 Enum 类型?

【问题讨论】:

  • 任何语言的枚举都表示一组可能的值,但在一个对象中它只需要一个值。在 JSON 中也是如此,您可以在 JSON Schema 中定义一组值,但在 JSON 数据中它只需要其中一个值。

标签: json jsonschema


【解决方案1】:

JSON 没有 enum 类型。对enum 建模的两种方法是:

一个数组,就像你目前的样子。数组值是元素,元素标识符将由值的数组索引表示。但是,这不会对稀疏枚举(第一个索引不为零或标识符不连续的枚举)建模。

enum suit {
  clubs = 0,
  diamonds,
  hearts,
  spades,
};

// is equivalent to

"suitEnum": ["clubs", "diamonds", "hearts", "spades"];

地图,不太紧凑,但解决了数组限制:

enum suit {
  clubs = 10,
  diamonds = 20,
  hearts = 30,
  spades = 40,
};

// is equivalent to

"suitEnum": {
  "clubs": 10,
  "diamonds": 20,
  "hearts": 30,
  "spades" 40,
};

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-18
    • 2014-06-25
    • 2014-09-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多