问题描述
我试图从GET调用中获取响应,并通过OPENJSON
将其加载到SQL Server中,但是我在解析响应时遇到了麻烦。
DECLARE @json NVARCHAR(MAX);
SET @json = N'{
"LookupServiceType": "GetAssetValues","Items": [
{
"id": "19676","value": "{\"AssetCode\":\"TDAACC\",\"Symbol\":null,\"Issue\":\"ACCOUNT #49\",\"Issuer\":\"TD AMERITRADE\"}"
},{
"id": "19677","value": "{\"AssetCode\":\"RE100\",\"Issue\":\"APN: 057\",\"Issuer\":\"SAN ANTONIO TX 78212\"}"
},{
"id": "19908","value": "{\"AssetCode\":\"NALIPO\",\"Issue\":\"POLICY # L0472\",\"Issuer\":\"NATIONWIDE LIFE\"}"
}
]
}';
我尝试了许多变体,但我做对了。这是我尝试过的几件事。任何建议将不胜感激。
SELECT *
FROM OPENJSON(@json,'$.Items')
WITH (
Items int '$.id',value NVARCHAR(MAX) '$.value',AssetCode NVARCHAR(50) '$.value.AssetCode',Symbol NVARCHAR(50) '$.value.Symbol',Issue NVARCHAR(50) '$.value.Issue',Issuer NVARCHAR(50) '$.value.Issuer'
);
SELECT id,AssetCode,Symbol,Issue,Issuer
FROM OPENJSON(@json)
WITH (
Items NVARCHAR(MAX) '$.Items' AS JSON
)
OUTER APPLY OPENJSON(Items)
WITH (
id INT 'strict $.id',value NVARCHAR(MAX) '$.value' AS JSON
)
OUTER APPLY OPENJSON(value)
WITH (
AssetCode NVARCHAR(50) '$.AssetCode',Symbol NVARCHAR(50) '$.Symbol',Issue NVARCHAR(50) '$.Issue',Issuer NVARCHAR(50) '$.Issuer'
);
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)