Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何解析JSON字符串而不是对象_Json_Sql Server - Fatal编程技术网

如何解析JSON字符串而不是对象

如何解析JSON字符串而不是对象,json,sql-server,Json,Sql Server,有一个VARCHAR列jsonString,其中包含格式为JSON的简单文本: id jsonString 1 {"topData":{"personName":"john","personAge":"20"}} 2 {"topData":{"personName":"mike",&qu

有一个
VARCHAR
jsonString
,其中包含格式为JSON的简单文本:

id         jsonString
1          {"topData":{"personName":"john","personAge":"20"}}
2          {"topData":{"personName":"mike","personAge":"30"}}
3          {"topData":{"personName":"sten","personAge":"50"}}
如何解析这个字符串?它不是JSON对象,所以我们需要先将其转换为JSON吗

select OPENJSON(cast(jsonString as JSON) 

我尝试了很多方法,但无法将
personName
personAge
提取为单独的值。

尝试以下方法:

SELECT personName,
       personAge 
FROM NAME_OF_THE_TABLE
OUTER APPLY OPENJSON (jsonString)
WITH
(
    personName nvarchar(50) '$topData.personName',
    personAge tinyint '$topData.personAge'
)

您没有提到表的名称,因此您可以用真实的表替换表的名称。请告诉我们您尝试过的“多种方法”。根据文档,“jsonExpression是一个包含JSON文本的Unicode字符表达式。”。所以根本不需要将字符串转换为任何内容。代码转换成功了吗?