MSSQL中解析JSON特殊字符

DECLARE @json NVARCHAR(MAX) = N'{
  "data": {},
  "select": {"name": "ECOB000000RV"},
  "input": {"input1": []},
  "cascader": {"mycascader": [1, 2, 3]},
  "datePicker": {},
  "dateSelect": {},
  "linkInfo": {
    "设备": "6FZLC-105#",
    "具体名称": "6FZLC-105#_总数量",
    "值": "1300",
    "时间": "2026/1/30 10:26:42"
  }
}'

-- 方法1:使用带引号的路径
SELECT JSON_VALUE(@json, '$."linkInfo"."设备"') AS 设备值

-- 方法2:使用单引号包裹整个路径
SELECT JSON_VALUE(@json, '$.linkInfo."设备"') AS 设备值

-- 方法3:使用方括号表示法--测试不行
SELECT JSON_VALUE(@json, '$.linkInfo["设备"]') AS 设备值

重要提醒:

  1. JSON 字符串需要 N 前缀:N'...' 确保正确处理 Unicode 字符

  2. 中文键名需要引号:路径中的中文字符必须用双引号包裹

  3. 路径语法规则:

    • 普通英文键名:$.key1.key2

    • 特殊字符键名:$."key-1"."key.2" 或 $["key-1"]["key.2"]

    • 中文字符键名:$."设备"."名称" 或 $["设备"]["名称"]

posted @ 2026-01-30 11:13  herry507  阅读(4)  评论(0)    收藏  举报