似乎如果我有密钥test1.test2
,则无法逃避此点以按原样使用此密钥。
表达式:
sqlite> update collections set json_nodes = (select json_set(json(collections.js
on_nodes), '$.test.test1', json('123')) from collections);
将导致
{"test":{"test1":123}}
答案 0 :(得分:0)
对于查找,可以将包含点的密钥名称括在双引号中。但是,如果您的键名包含双引号,那么我认为您很不走运,除非您将源代码修改为JSON1扩展名。
似乎没有记录用双引号引起来的转义,但是您可以在函数jsonLookupStep
中从the source code to the JSON1 extension看到它的工作方式。
示例:
SELECT json_extract(json_data, '$."Issuer.LongCompanyName"')
FROM instruments_table