首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在SQL Server中返回基本的JSON字符串数组

在SQL Server中返回基本的JSON字符串数组
EN

Stack Overflow用户
提问于 2018-06-08 23:14:52
回答 1查看 2.6K关注 0票数 3

我需要从SQL Server以JSON格式返回的结果创建一个基本的字符串数组。

我想要的JSON字符串示例如下:

[
  {
    "person": {
        "name":"Jane Bloggs",
        "previousSurnames": [
            "Bloggy",
            "Jones"
        ],
        "Address":"I Live Here"
  }
]

它是我希望作为JSON检索的"previousSurnames“,但没有任何前面的标签……只是一个字符串列表。

当我尝试传统的方法时,它总是将db字段作为标识符(以及一些我也不想要的额外的大括号!)

[
  {
    "person": {
        "name":"Jane Bloggs",
        "previousSurnames": [
            {"surname":"Bloggy"},
            {"surname":"Jones"}
        ],
        "Address":"I Live Here"
  }
]

SQL Server必须能够做到这一点,因为它将简单的字符串数组识别为正确的JSON字符串,例如

select isjson('["Bloggy","Jones"]')

返回1(有效)

请帮帮忙。

EN

回答 1

Stack Overflow用户

发布于 2018-06-09 00:24:51

我认为您所要求的是希望以JSON字符串的形式检索previousSurnames的值。如果是这样,那么其中一个应该是有效的。

对于单项数组,如您的示例所示:

DECLARE @json NVARCHAR(MAX) = N'[
  {
    "person": {
        "name":"Jane Bloggs",
        "previousSurnames": ["Bloggy","Jones"],
        "Address":"I Live Here"
    }
  }
]';

SELECT JSON_QUERY(@json, '$[0].person.previousSurnames')

或者,如果您的源JSON在数组中有多个项,这应该是可行的:

DECLARE @json NVARCHAR(MAX) = N'[
  {
    "person": {
        "name":"Jane Bloggs",
        "previousSurnames": ["Bloggy","Jones"],
        "Address":"I Live Here"
    }
  },
  {
    "person": {
        "name":"Jane Bloggs 2",
        "previousSurnames": ["Bloggy2","Jones2"],
        "Address":"I Live Here"
    }
  }
]';
SELECT JSON_QUERY(value, '$.person.previousSurnames')
FROM OPENJSON(@json)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50763678

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档