在 SSRS 报告中显示格式化 JSON
Display formatted JSON in SSRS report
我有一个 table,其中一个字段是 JSON 字符串。
"CX.UW.001": "03/08/2017", "CX.UW.001.AUDIT": "admin",
我想生成一个 SSRS 报告,它以可读的格式显示,例如:
CX.UW.001: 03/08/2017
CX.UW.001.AUDIT: admin
可能吗?
右键单击该字段,选择expression
,从Common Functions
类别中找到Text
,使用Replace
函数,应该是这样的语法:
Replace (Fields!Yours.Value.Value,"""","")
或者在 TSQL 中:
Select Replace(JSON_COLUMN,'"','')
From table
如果您要查找多条记录,任何 parse/split 函数都可以,或者您可以使用简单的 CROSS APPLY 和一点点 XML
Declare @YourTable table (ID int, JSON varchar(max))
Insert Into @YourTable values
(1,'"CX.UW.001": "03/08/2017", "CX.UW.001.AUDIT": "admin"')
Select A.ID
,DisplayAs = replace(B.RetVal,'"','')
From @YourTable A
Cross Apply (
Select RetSeq = Row_Number() over (Order By (Select null))
,RetVal = LTrim(RTrim(B.i.value('(./text())[1]', 'varchar(max)')))
From (Select x = Cast('<x>' + replace((Select replace(A.JSON,',','§§Split§§') as [*] For XML Path('')),'§§Split§§','</x><x>')+'</x>' as xml).query('.')) as X
Cross Apply x.nodes('x') AS B(i)
) B
Returns
ID DisplayAs
1 CX.UW.001: 03/08/2017
1 CX.UW.001.AUDIT: admin
或者如果你想让字符串换行
Select A.ID
,DisplayAs = replace(replace(JSON,',',char(13)),'"','')
From @YourTable A
Returns
1 CX.UW.001: 03/08/2017
CX.UW.001.AUDIT: admin
我有一个 table,其中一个字段是 JSON 字符串。
"CX.UW.001": "03/08/2017", "CX.UW.001.AUDIT": "admin",
我想生成一个 SSRS 报告,它以可读的格式显示,例如:
CX.UW.001: 03/08/2017
CX.UW.001.AUDIT: admin
可能吗?
右键单击该字段,选择expression
,从Common Functions
类别中找到Text
,使用Replace
函数,应该是这样的语法:
Replace (Fields!Yours.Value.Value,"""","")
或者在 TSQL 中:
Select Replace(JSON_COLUMN,'"','')
From table
如果您要查找多条记录,任何 parse/split 函数都可以,或者您可以使用简单的 CROSS APPLY 和一点点 XML
Declare @YourTable table (ID int, JSON varchar(max))
Insert Into @YourTable values
(1,'"CX.UW.001": "03/08/2017", "CX.UW.001.AUDIT": "admin"')
Select A.ID
,DisplayAs = replace(B.RetVal,'"','')
From @YourTable A
Cross Apply (
Select RetSeq = Row_Number() over (Order By (Select null))
,RetVal = LTrim(RTrim(B.i.value('(./text())[1]', 'varchar(max)')))
From (Select x = Cast('<x>' + replace((Select replace(A.JSON,',','§§Split§§') as [*] For XML Path('')),'§§Split§§','</x><x>')+'</x>' as xml).query('.')) as X
Cross Apply x.nodes('x') AS B(i)
) B
Returns
ID DisplayAs
1 CX.UW.001: 03/08/2017
1 CX.UW.001.AUDIT: admin
或者如果你想让字符串换行
Select A.ID
,DisplayAs = replace(replace(JSON,',',char(13)),'"','')
From @YourTable A
Returns
1 CX.UW.001: 03/08/2017
CX.UW.001.AUDIT: admin