You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PgAdmin与应用执行GeoJSON聚合查询结果不一致问题求助

解决PostgreSQL GeoJSON结果被包裹在json_build_object键下的问题

问题原因

应用的数据库驱动会将查询的列名作为键返回结果,原查询未给jsonb_build_object生成的结果指定别名,驱动默认用函数名json_build_object作为键,把GeoJSON数据包裹在这个键下,导致无法直接解析。

解决方案

给查询结果字段添加明确别名,再在应用中提取该别名对应的值即可。

修改后的SQL语句:

SELECT jsonb_build_object(
    'type',     'FeatureCollection',
    'features', jsonb_agg(features.feature)
) AS geojson  -- 添加别名
FROM(
    SELECT jsonb_build_object(
    'type',       'Feature',
    'id',         parcelid,
    'geometry',   ST_AsGeoJSON(ST_GeometryN(geom,1))::jsonb,
    'properties', to_jsonb(inputs) - 'parcelid' - 'geom'
) as feature 
    FROM (SELECT * FROM parcels2020) inputs) features;

应用端处理

在应用代码中,不要直接读取整个结果对象,而是提取geojson字段对应的值,就能得到标准的GeoJSON FeatureCollection,可直接解析使用。

内容的提问来源于stack exchange,提问作者Sharitau

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 19:03:38