当我使用 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
在我的 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