如何为SQL Server返回的JSON字段添加嵌套的value属性?
在SQL Server中为JSON输出添加嵌套的value属性结构
你只需要修改子查询中每个字段的定义,为每个字段构造一个包含value属性的嵌套对象即可。具体做法是将每个字段值放在一个子查询里,并指定value作为属性名,外层用原字段名作为别名。
修改后的查询语句如下:
SELECT ( SELECT (SELECT CAST(Id AS nvarchar) AS value) AS ExternalRefNbr, (SELECT [Description] AS value) AS Description, (SELECT [Note] AS value) AS Note FOR JSON PATH, WITHOUT_ARRAY_WRAPPER ) FROM Project
原理说明
- 对于每个字段(比如
Id),我们用(SELECT CAST(Id AS nvarchar) AS value)生成一个独立的JSON对象{"value": "1"} - 将这个子查询的结果用原字段名(
ExternalRefNbr)作为别名,FOR JSON PATH就会把这个对象作为对应键的值 WITHOUT_ARRAY_WRAPPER保持原来的单对象输出格式,不会将结果包裹在数组中
执行以上查询后,就能得到你期望的JSON输出:
{"ExternalRefNbr":{"value":"1"},"Description":{"value":"Daphne"},"Note":{"value":"Ocala county - Barn"}} {"ExternalRefNbr":{"value":"2"},"Description":{"value":"Sunny"},"Note":{"value":"Riverdon county - Prison"}} {"ExternalRefNbr":{"value":"3"},"Description":{"value":"Sasha"},"Note":{"value":"Sommer county - School"}}
内容的提问来源于stack exchange,提问作者abhi
相关产品推荐
相关产品推荐

