我有一个JSON字符串,由API返回,看起来像这样:
{
"data": {
"transactions": {
"edges": [
{
"node": {
"text": "debet",
"invoiceAmount": "1.0000"
}
},
{
"node": {
"text": "kredit",
"invoiceAmount": "-1.0000"
}
}
]
}
}
}
这是一个有效的JSON,但是我能够在sql中解析的唯一方法是首先操作字符串。
[
{
"node": {
"text": "debet",
"invoiceAmount": "1.0000"
}
},
{
"node": {
"text": "kredit",
"invoiceAmount": "-1.0000"
}
}
]
例如下面的例子。我如何在不操纵字符串的情况下实现这一点?
DECLARE @json NVARCHAR(MAX);
SET @json = N'[{"node":{"text":"debet","invoiceAmount":"1.0000"}},{"node":{"text":"kredit","invoiceAmount":"-1.0000"}}]';
SELECT *
FROM OPENJSON(@json)
WITH (
text NVARCHAR(50) '$.node.text',
invoiceAmount MONEY '$.node.surname'
)
我尝试了$.数据.事务.边缘.节点.文本。SQL返回NULL
1条答案
按热度按时间0sgqnhkj1#
您可以使用
从原始字符串中获取所需的值。
(DB Fiddle)
JSON_QUERY
首先提取数组,然后使用OPENJSON
扩展该数组。