我们将数据作为 JSON 字符串存储在我们的数据库中。由于使用 Newtonsoft JSON,此数据包含键中带有 $ 符号的字段。
是否可以使用 MSSQL 中的 JSON_VALUE 函数查询这些字段?
我尝试的查询抛出异常JSON 路径格式不正确。在位置 2 发现意外字符“$”。
SELECT JSON_VALUE(JsonData, '$.$type') FROM dbo.JsonTable
Run Code Online (Sandbox Code Playgroud)
JsonData 看起来像这样:
{
"$type": "Project.Classes.JsonType",
"amount": 50
}
Run Code Online (Sandbox Code Playgroud)
如文档中所述,如果键名以美元符号开头或包含特殊字符(如空格),则需要用引号将键名括起来。
T-SQL:
DECLARE @json nvarchar(max) = N'{"$type": "Project.Classes.JsonType", "amount": 50}'
SELECT JSON_VALUE(@json, '$."$type"') AS JsonValue
Run Code Online (Sandbox Code Playgroud)
输出:
------------------------
JsonValue
------------------------
Project.Classes.JsonType
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1345 次 |
| 最近记录: |