我以前从未见过这种 JSON,我不确定如何使用代码生成这种结构。在下面的 Json 结构中
offerings
包含一个对象数组以及带有 OR
运算符的对象。有人可以解释一下这个有效的 JSON 结构如何以及我们如何为这种 JSON 结构生成 proto 缓冲区吗?
{
"id": 147,
"display_text": "Entertainment available",
"quality": "better",
"cost": "free or paid",
"exists": "yes",
"type": "streaming",
"updated_at": "2019-01-30T09:13:30Z",
"offerings": [
[
{
"delivery_medium": "in-seat",
"content_type": "livetv",
"selection_type": "live"
},
"and",
{
"delivery_medium": "in-seat",
"content_type": "movies",
"selection_type": "loop"
}
],
"or",
{
"delivery_medium": "streaming",
"content_type": "avod",
"selection_type": "on-demand"
}
]
}
这是 json 数组的一个可爱的用法......这可能有助于解释它
offerings
是一个包含三个元素的数组。
and
的字符串和另一个对象or
在树视图 JSON 验证器之一中更容易看到。
用户实际上拥有一棵树,他们可以根据它进行一些处理(也许将其用作做出某种决策的规则)。
注意:来自 https://json-schema.org/understanding-json-schema/reference/array.html
数组用于有序元素。在 JSON 中,数组中的每个元素可能属于不同的类型。
JavaScript 对象表示法 (JSON) (RFC7159) 的定义不包含任何逻辑或算术运算符,或一般运算符。 JSON 只是被定义为“数据交换格式”。
您的示例在语法上是有效的 - 因为不同的值类型可以在 JSON 数组中共存 - 但除此之外,那些“and”和“or”运算符没有任何意义。最有可能的是,用于处理 JSON 的程序将假定这些值的存在并实现某种逻辑。