SQL Anywhere FOR JSON显式如何制作封装数组

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

我在SQL Anywhere 17中有一个简单的查询,一栏两行:

SELECT
    1       AS tag,
    null    AS parent,
    row_num AS [enc_obj!1!row_num]
FROM
    sa_rowgenerator(1, 2)
ORDER BY
    3
FOR JSON EXPLICIT;

我得到的结果是,每行都有一个单独的数组的数组:

[
    {
        "enc_obj": [
            {
                "row_num": 1
            }
        ]
    },
    {
        "enc_obj": [
            {
                "row_num": 2
            }
        ]
    }
]

如何修改查询以获取其中包含所有行的单个数组,如下所示:

{
    "enc_obj": [
        {
            "row_num": 1
        },
        {
            "row_num": 2
        }
    ]
}

有什么想法吗?

json sqlanywhere
1个回答
0
投票

您可以简单地从json指令中忽略enc_obj标准:

SELECT
    1       AS tag,
    null    AS parent,
    row_num AS [!1!row_num]    -- NOTE: "enc_obj" is dropped!
FROM
    sa_rowgenerator(1, 2)
ORDER BY
    3
FOR JSON EXPLICIT;

因此,您将获得一个匿名JSON数组without一个封装对象:

[
  {
    "row_num": 1
  },
  {
    "row_num": 2
  }
]

您可以使用吗?

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