Postgis:从 json 类型列中获取值

Postgis: Get value from json type column

我有包含 lat/lon 值的列,格式如下:

{ "lat": 35.910067092299997, "lon": -79.074502748100002 }

我认为这是 JSON 格式,所以我尝试使用我发现的一些示例,包括这种类型的运算符 ->> @> ... 但没有任何效果,查询仍然没有执行。

我做错了什么? 我得到的错误示例:

ERROR:  operator does not exist: character varying @> unknown

您的错误告诉您等式的左侧是 "character varying"(固定长度的文本数据类型),因此您不能在其上使用 json 运算符。 首先,您必须将其转换为 json 或 jsonb 类型,然后一切正常。

select '{ "lat": 35.910067092299997, "lon": -79.074502748100002 }'::json->'lat'