{"title":"GeoJSON 序列化器","version":"6.1","locale":"zh-hans","docname":"ref/contrib/gis/serializers","url":"/zh-hans/6.1/ref/contrib/gis/serializers/","canonical":"https://djangodocs.dev/zh-hans/6.1/ref/contrib/gis/serializers/","summary":"GeoDjango 为 GeoJSON 格式提供了专用的序列化器。有关序列化的更多信息，请参阅 序列化 Django 对象 。 geojson 序列化器不适用于数据的往返，因为它没有相应的反序列化器。例如，您不能使用 loaddata 来重新加载该序列化器生成的输出。如果您计划重新加载输出的数据，请改用普通的 json…","html":"<span id=\"geojson-serializer\"></span><h1><code class=\"docutils literal notranslate\"><span class=\"pre\">GeoJSON</span></code> 序列化器<a class=\"heading-anchor\" href=\"#module-django.contrib.gis.serializers.geojson\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<p>GeoDjango 为 <a class=\"reference external\" href=\"https://geojson.org/\">GeoJSON</a> 格式提供了专用的序列化器。有关序列化的更多信息，请参阅 <a class=\"reference internal\" href=\"/zh-hans/6.1/topics/serialization/\"><span class=\"doc\">序列化 Django 对象</span></a>。</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">geojson</span></code> 序列化器不适用于数据的往返，因为它没有相应的反序列化器。例如，您不能使用 <a class=\"reference internal\" href=\"/zh-hans/6.1/ref/django-admin/#django-admin-loaddata\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">loaddata</span></code></a> 来重新加载该序列化器生成的输出。如果您计划重新加载输出的数据，请改用普通的 <a class=\"reference internal\" href=\"/zh-hans/6.1/topics/serialization/#serialization-formats-json\"><span class=\"std std-ref\">json 序列化器</span></a>。</p>\n<p>除了 <code class=\"docutils literal notranslate\"><span class=\"pre\">json</span></code> 序列化器的选项外，当通过 <code class=\"docutils literal notranslate\"><span class=\"pre\">serializers.serialize()</span></code> 调用 <code class=\"docutils literal notranslate\"><span class=\"pre\">geojson</span></code> 序列化器时，还接受以下额外的选项：</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">geometry_field</span></code>：一个包含要用于 GeoJSON 特征的 <code class=\"docutils literal notranslate\"><span class=\"pre\">geometry</span></code> 键的几何字段名称的字符串。只有当您的模型具有多个几何字段并且不希望使用第一个定义的几何字段时才需要此选项（默认情况下，会选择第一个几何字段）。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">id_field</span></code>：一个包含要用于 GeoJSON 特征的 <code class=\"docutils literal notranslate\"><span class=\"pre\">id</span></code> 键的字段名称的字符串。默认情况下，将使用对象的主键。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">srid</span></code>：用于 <code class=\"docutils literal notranslate\"><span class=\"pre\">geometry</span></code> 内容的 SRID。默认值为 4326（WGS 84）。</p></li>\n</ul>\n<p><a class=\"reference internal\" href=\"/zh-hans/6.1/topics/serialization/#subset-of-fields\"><span class=\"std std-ref\">fields</span></a> 选项可用于限制出现在 <code class=\"docutils literal notranslate\"><span class=\"pre\">properties</span></code> 键中的字段，与所有其他序列化器一样。</p>\n<p>举例：</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.core.serializers</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">serialize</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">my_app.models</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">City</span>\n\n<span class=\"n\">serialize</span><span class=\"p\">(</span><span class=\"s2\">&quot;geojson&quot;</span><span class=\"p\">,</span> <span class=\"n\">City</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">all</span><span class=\"p\">(),</span> <span class=\"n\">geometry_field</span><span class=\"o\">=</span><span class=\"s2\">&quot;point&quot;</span><span class=\"p\">,</span> <span class=\"n\">fields</span><span class=\"o\">=</span><span class=\"p\">[</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">])</span>\n</code></pre></div>\n<p>将会输出：</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"p\">{</span>\n    <span class=\"s2\">&quot;type&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;FeatureCollection&quot;</span><span class=\"p\">,</span>\n    <span class=\"s2\">&quot;features&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n        <span class=\"p\">{</span>\n            <span class=\"s2\">&quot;type&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Feature&quot;</span><span class=\"p\">,</span>\n            <span class=\"s2\">&quot;id&quot;</span><span class=\"p\">:</span> <span class=\"mi\">1</span><span class=\"p\">,</span>\n            <span class=\"s2\">&quot;geometry&quot;</span><span class=\"p\">:</span> <span class=\"p\">{</span><span class=\"s2\">&quot;type&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Point&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;coordinates&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span><span class=\"o\">-</span><span class=\"mf\">87.650175</span><span class=\"p\">,</span> <span class=\"mf\">41.850385</span><span class=\"p\">]},</span>\n            <span class=\"s2\">&quot;properties&quot;</span><span class=\"p\">:</span> <span class=\"p\">{</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Chicago&quot;</span><span class=\"p\">},</span>\n        <span class=\"p\">}</span>\n    <span class=\"p\">],</span>\n<span class=\"p\">}</span>\n</code></pre></div>\n<p>当未指定 <code class=\"docutils literal notranslate\"><span class=\"pre\">fields</span></code> 参数时，<code class=\"docutils literal notranslate\"><span class=\"pre\">geojson</span></code> 序列化器会将一个 <code class=\"docutils literal notranslate\"><span class=\"pre\">pk</span></code> 键添加到 <code class=\"docutils literal notranslate\"><span class=\"pre\">properties</span></code> 字典中，其值为对象的主键。</p>","rootId":"module-django.contrib.gis.serializers.geojson","toc":[],"breadcrumbs":[{"docname":"ref/index","title":"API 参考","url":"/zh-hans/6.1/ref/"},{"docname":"ref/contrib/index","title":"contrib 包","url":"/zh-hans/6.1/ref/contrib/"},{"docname":"ref/contrib/gis/index","title":"GeoDjango","url":"/zh-hans/6.1/ref/contrib/gis/"},{"docname":"ref/contrib/gis/utils","title":"GeoDjango 实用程序","url":"/zh-hans/6.1/ref/contrib/gis/utils/"}],"prev":{"docname":"ref/contrib/gis/ogrinspect","title":"OGR 检查","url":"/zh-hans/6.1/ref/contrib/gis/ogrinspect/"},"next":{"docname":"ref/contrib/gis/commands","title":"GeoDjango 管理命令","url":"/zh-hans/6.1/ref/contrib/gis/commands/"},"formats":{"html":"/zh-hans/6.1/ref/contrib/gis/serializers/","markdown":"/zh-hans/6.1/ref/contrib/gis/serializers.md","json":"/zh-hans/6.1/ref/contrib/gis/serializers.json"},"source":"https://github.com/django/django/blob/stable/6.1.x/docs/ref/contrib/gis/serializers.txt","official":"https://docs.djangoproject.com/zh-hans/6.1/ref/contrib/gis/serializers/","inVersions":["6.1","6.0","5.2","5.1","5.0","4.2","4.1","4.0","3.2","3.1","3.0","2.2","2.1","2.0"],"inLocales":["en","sv","zh-hans","ga","fr","ja","id","it","pt-br","ko","es","el","pl"]}