当我使用 json_extract 函数时,Sqlite 出现格式错误 JSON 错误

malformed JSON Error in Sqlite when i use json_extract funciton

在我的 sqllite table 中,我有一个名为 config 的字段,它以 json 文本的形式存储配置..

下面是存储在config字段

中的示例数据
{
"matRid": 1,
"holderType": 1,
"uomRid": 1,
"type": 502,
"stockConditionIndex": 800,
"serialRequired": 1,
"codepart": 1,
"allowEdit": 1
}

根据这个数据,当我 运行 下面的查询抛出 malformed JSON 错误

 select json_extract(config, '$.codepart') as codepart FROM TableName 

为了测试 json 的格式是否正确,我有 运行 以下查询

select json_valid(config) from TableName

以上查询返回 1,这确认 json 的格式正确

而且如果我 运行 直接像下面那样查询,使用字段 config 的 json 值查询将 return 结果成功,

select json_extract('{
"matRid": 1,
"holderType": 1,
"uomRid": 1,
"type": 502,
"stockConditionIndex": 800,
"serialRequired": 1,
"codepart": 1,
"allowEdit": 1
}', '$.codepart') as codepart FROM TableName

如何在 SqlLite 中使用列名而不是 json 值直接使 json_extract 工作?

附加信息:SQLite 版本 3.35.5。

任何建议都会有帮助..谢谢..

错误实际上是由 json_extract 为字段 config

的具有空记录(空字符串)的行产生的

通过包含 IIF 语句解决了问题

SELECT json_extract(json(IIF(config <> '', config, NULL)), '$.codepart') from TableName