希望从 json 中提取标量值。
知道 JSON 使用双引号。
知道标量的数据类型:字符串、数字、日期、布尔值。
知道标量将在第一级,即不是嵌入对象的属性
{“想要”:“字符串”} =>“字符串”
{“想要”:123 } => 123
{“不”:{“想要”:“错误”},“想要”:“正确”} =>“正确
{ "nothing": 0 } => null / 未找到
不知道如何处理开/关引号,也不知道如何处理嵌入对象。
这可能吗?
这是迄今为止我想出的最好的:
// match `want` attribute
(?:"want"\s*:\s*)
// string, number, boolean or null
(((?:")([^"]*)(?:"))|([-0-9][.eE0-9]*)|true|false|null)
// followed by comma or right bracket
(?:\s*(,|}))
这很好,因为它
可以运行
postgres
抓弦
抢号码
抓取布尔值和空值
这很糟糕,因为它
不确保
want
是一级属性字符串值不能包含引号 (")