DECLARE @JSON_CurrentArray NVARCHAR(MAX) = '{"Some List":
[{"Name":"Item1","Id":"2"},{"Name":"Item2","Id":"3"}]}';
DECLARE @JSON_TopLevel NVARCHAR(MAX) = '{"OverAll":[{"Product Section":[]}]}';
SET @JSON_TopLevel = JSON_MODIFY(@JSON_TopLevel, 'append $."Overall"."Product Selection"', JSON_QUERY(@JSON_CurrentArray));
SELECT @JSON_TopLevel;
我一直试图将CurrentArray粘贴到TopLevel中,
尝试了一些疯狂的追加/松懈/严格的组合......但我对JSON Manipulation很新,而且几乎处于这个项目的'液体大脑阶段'。 我还想过添加一个空白数组,但无济于事(我可能也做错了)
现在我的代码是盲目的,所以,如果你能以某种方式将一个数组注入另一个... #foreverindebted。
答案 0 :(得分:1)
如果我理解正确你想要这样的事情:
DECLARE @JSON_CurrentArray NVARCHAR(MAX) = '{"Some List":
[{"Name":"Item1","Id":"2"},{"Name":"Item2","Id":"3"}]}';
DECLARE @JSON_TopLevel NVARCHAR(MAX) = '{"OverAll":[{"Product Section":[]}]}';
SET @JSON_TopLevel = JSON_MODIFY(@JSON_TopLevel, 'append $."OverAll"[0]."Product Section"', JSON_QUERY(@JSON_CurrentArray));
SELECT @JSON_TopLevel;
<强> DBFiddle 强>
结果:
{&#34; OverAll&#34;:[{&#34; Product Section&#34;:[{&#34; Some List&#34;:[{&#34; Name&#34;:&# 34;项目1&#34;&#34;标识&#34;:&#34; 2&#34;},{&#34;名称&#34;:&#34;项目2&#34;&#34;标识& #34;:&#34; 3&#34;}]}]}]}
要检查您的路径是否正确,您可以使用JSON_QUERY
和strict
模式:
SELECT JSON_QUERY(@JSON_TopLevel, 'strict $."OverAll"."Product Section"')
--Msg 13608 Level 16 State 5 Line 7
--Property cannot be found on the specified JSON path.
-- vs
SELECT JSON_QUERY(@JSON_TopLevel, 'strict $."OverAll"[0]."Product Section"')
-- []