Postgres JSON查询在DataGrip中的行为不符合预期

zyfwsgd6  于 2023-04-08  发布在  其他
关注(0)|答案(1)|浏览(146)

我有一个Postgres表,里面有一个JSON字段。这里有一些数据的例子:

"{\"client_id\": 1, \"garment_id\": \"14\", \"garment_model\": \"RG\", \"is_bottom\": false, \"options\": [{\"key\": \"size\", \"value\": \"S\"}]}"
"{\"client_id\": 1, \"garment_id\": \"33\", \"garment_model\": \"01\", \"options\": [{\"key\": \"size\", \"value\": \"M\"}]}"

我希望通过以下查询获得客户端ID列表:

SELECT payload->'client_id'
FROM garment LIMIT 10;

但是,我得到的不是client_id值的列表,而是NULL

我也试过这个查询:

SELECT payload->>'\"client_id\"'
FROM garment LIMIT 10;

我的问题是:如何获得客户端ID列表的预期结果?

elcex8rz

elcex8rz1#

如果数据不是有效的JSON,或者字段不存在,那么你可以期待NULL。我会检查JSON的有效性。

SELECT json_typeof(payload) 
FROM garment LIMIT 10;

如果任何值不是json类型,则意味着它们不是有效的JSON数据。

相关问题