# Django 5.2.8 documentation

# `GeoJSON` 序列化器

GeoDjango 为 GeoJSON 格式提供了专用的序列化器。有关序列化的更多信息，请参阅 序列化 Django 对象。

`geojson` 序列化器不适用于数据的往返，因为它没有相应的反序列化器。例如，您不能使用 `loaddata` 来重新加载该序列化器生成的输出。如果您计划重新加载输出的数据，请改用普通的 json 序列化器。

除了 `json` 序列化器的选项外，当通过 `serializers.serialize()` 调用 `geojson` 序列化器时，还接受以下额外的选项：

- `geometry_field`：一个包含要用于 GeoJSON 特征的 `geometry` 键的几何字段名称的字符串。只有当您的模型具有多个几何字段并且不希望使用第一个定义的几何字段时才需要此选项（默认情况下，会选择第一个几何字段）。

- `id_field`：一个包含要用于 GeoJSON 特征的 `id` 键的字段名称的字符串。默认情况下，将使用对象的主键。

- `srid`：用于 `geometry` 内容的 SRID。默认值为 4326（WGS 84）。

fields 选项可用于限制出现在 `properties` 键中的字段，与所有其他序列化器一样。

举例：

    from django.core.serializers import serialize
    from my_app.models import City

    serialize("geojson", City.objects.all(), geometry_field="point", fields=["name"])

将会输出：

    {
        "type": "FeatureCollection",
        "features": [
            {
                "type": "Feature",
                "id": 1,
                "geometry": {"type": "Point", "coordinates": [-87.650175, 41.850385]},
                "properties": {"name": "Chicago"},
            }
        ],
    }

当未指定 `fields` 参数时，`geojson` 序列化器会将一个 `pk` 键添加到 `properties` 字典中，其值为对象的主键。