T-SQL - JSON_QUERY : select json 名称中包含特殊字符的属性 属性
T-SQL - JSON_QUERY : select json properties with special characters in the property name
我在尝试 select 来自 JSON 列的值时遇到了一些问题。
json 是:
{
"$type":"myNameSpace.myClass, myDll"
}
我正在尝试用类似
的方式查询它
SELECT myIdColumnName, myJsonColumnName, JSON_QUERY(myJsonColumnName, '$.$type') as mType
问题是路径“$.$type”无效,意大利语错误是:
Il formato del percorso JSON non è corretto. È stato trovato il carattere imprevisto '$' nella posizione 2.
这基本上表明解析器不希望在“.”之后出现“$”。
我已经尝试使用 '$.type' 和 '$."$type"' 但在这两种情况下我都将 null 作为 mType.
你能告诉我这个查询的正确语法吗?
谢谢
当您想要提取 JSON
对象或标量值并且您的 path
以美元符号 $
开头时,您需要用引号将其括起来 "
。函数 JSON_QUERY
从 JSON
字符串中提取对象或数组,因此当您想从 JSON
文本中提取标量值时,JSON_VALUE
在这里更合适。
示例:
DECLARE @json nvarchar(max) = N'{
"$type":"myNameSpace.myClass, myDll"
}'
SELECT JSON_VALUE(@json, '$."$type"')
输出:
--------------------------
(No column name)
--------------------------
myNameSpace.myClass, myDll
我在尝试 select 来自 JSON 列的值时遇到了一些问题。 json 是:
{
"$type":"myNameSpace.myClass, myDll"
}
我正在尝试用类似
的方式查询它SELECT myIdColumnName, myJsonColumnName, JSON_QUERY(myJsonColumnName, '$.$type') as mType
问题是路径“$.$type”无效,意大利语错误是:
Il formato del percorso JSON non è corretto. È stato trovato il carattere imprevisto '$' nella posizione 2.
这基本上表明解析器不希望在“.”之后出现“$”。 我已经尝试使用 '$.type' 和 '$."$type"' 但在这两种情况下我都将 null 作为 mType.
你能告诉我这个查询的正确语法吗?
谢谢
当您想要提取 JSON
对象或标量值并且您的 path
以美元符号 $
开头时,您需要用引号将其括起来 "
。函数 JSON_QUERY
从 JSON
字符串中提取对象或数组,因此当您想从 JSON
文本中提取标量值时,JSON_VALUE
在这里更合适。
示例:
DECLARE @json nvarchar(max) = N'{
"$type":"myNameSpace.myClass, myDll"
}'
SELECT JSON_VALUE(@json, '$."$type"')
输出:
--------------------------
(No column name)
--------------------------
myNameSpace.myClass, myDll