我们将数据作为JSON字符串存储在我们的数据库中。 由于使用了Newtonsoft JSON,因此该数据包含键中带有$符号的字段。
是否可以使用MSSQL中的JSON_VALUE函数查询这些字段?
我尝试的查询引发异常 JSON路径格式不正确。在位置2处发现意外字符'$'。
SELECT JSON_VALUE(JsonData, '$.$type') FROM dbo.JsonTable
JsonData看起来像这样:
{
"$type": "Project.Classes.JsonType",
"amount": 50
}
答案 0 :(得分:1)
可能您应该尝试使用以下语法。 Documentation指出,如果密钥名称以美元符号开头或包含特殊字符(例如空格),则需要用引号将其引起来。
T-SQL:
DECLARE @json nvarchar(max) = N'{"$type": "Project.Classes.JsonType", "amount": 50}'
SELECT JSON_VALUE(@json, '$."$type"') AS JsonValue
输出:
------------------------
JsonValue
------------------------
Project.Classes.JsonType