JSON 结构中的运算符(和、或)

问题描述 投票:0回答:2

我以前从未见过这种 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"
                }
            ]
        }
java json protocol-buffers
2个回答
0
投票

这是 json 数组的一个可爱的用法......这可能有助于解释它

offerings
是一个包含三个元素的数组。

  • element [0] 是一个子数组,其中也包含 3 个元素 - 一个对象、一个值为
    and
    的字符串和另一个对象
  • element [1] 是一个值为
    or
  • 的字符串
  • element [2] 是一个定义一些值的对象。

在树视图 JSON 验证器之一中更容易看到。

用户实际上拥有一棵树,他们可以根据它进行一些处理(也许将其用作做出某种决策的规则)。

注意:来自 https://json-schema.org/understanding-json-schema/reference/array.html

数组用于有序元素。在 JSON 中,数组中的每个元素可能属于不同的类型。


0
投票

JavaScript 对象表示法 (JSON) (RFC7159) 的定义不包含任何逻辑或算术运算符,或一般运算符。 JSON 只是被定义为“数据交换格式”。

您的示例在语法上是有效的 - 因为不同的值类型可以在 JSON 数组中共存 - 但除此之外,那些“and”和“or”运算符没有任何意义。最有可能的是,用于处理 JSON 的程序将假定这些值的存在并实现某种逻辑。

© www.soinside.com 2019 - 2024. All rights reserved.