分享
三行代码  ›  专栏  ›  技术社区  ›  iman kazemi

MS SQL Server中JSON函数路径中的重音字符导致错误

  •  1
  • iman kazemi  · 技术社区  · 1 周前

    我们将一些JSON作为NVARCHAR保存在数据库中。在插入之前,我们用“IsJSON”函数验证JSON。问题是我们有一个JSON,在键中有重音字符,比如“Malrd”。IsJson返回1,这意味着它是一个有效的JSON,但是当我们试图在诸如“$.Malrd”这样的路径中使用它时,将导致以下错误:

    -- QUERY
    SELECT JSON_VALUE(N'{"Malārd":1000}', N'$.Malārd')
    -- OUTPUT
    -- JSON path is not properly formatted. Unexpected character 'ā' is found at position 5
    

    1 回复  |  直到 1 周前
        1
  •  1
  •   Zhorov    1 周前

    你需要包围 path 带引号的表达式如果密钥名称以美元符号开头或包含特殊字符:

    SELECT JSON_VALUE(N'{"Malārd":1000}', N'$."Malārd"')