如何解析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字符表达式。”。所以根本不需要将字符串转换为任何内容。代码转换成功了吗?