繁体   English   中英

如何将 JSON 转换为字符串数组

[英]How to convert JSON to array of strings

是否可以使用for json path以 JSON 数组格式格式化行?

我有这样的专栏

Col1
====
abc
def
ghi
jkl

我想像这样格式化它

{"Col1":["abc","def","ghi","jkl"]}

到目前为止,我已经让它看起来像这样

{["Col1":"abc","Col1":"def","Col1":"ghi","Col1":"jkl"]}

使用此代码

select col1 from table for json path 

通过一些字符串操作。

创建一个简单的数组似乎是一个错失的机会。

Select Col1 = json_query('["'+string_agg(string_escape(Col1,'json'), '","') +'"]')
 From  YourTable
  For  json path, Without_Array_Wrapper

结果

{"Col1":["abc","def","ghi","jkl"]}

如果您的版本是 <2017,则string_agg()将不可用。 但是,您可以使用stuff()/xml方法

Select Col1 = json_query('["'+stuff((Select concat('","',string_escape(Col1,'json'))  
                                      From  YourTable 
                                      For XML Path ('')),1,3,'')+'"]')
   For  json path, Without_Array_Wrapper

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM