<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>Sean,</p>
    <p>yes if there's a mix of data types, a String(JSON) field is
      reported to mean that.</p>
    <p>The only annoying thing is that for backward compatibility with
      past behaviour where we silently homogenized to a string, we
      didn't go to the point to actually quoting strings, so this isn't
      fully JSON compliant unfortunately</p>
    <p>I mean if we have out.json with:<br>
    </p>
    <p>{<br>
      "type": "FeatureCollection",<br>
      "features": [<br>
      { "type": "Feature", "properties": { "foo": "str" }, "geometry":
      null },<br>
      { "type": "Feature", "properties": { "foo": 0 }, "geometry": null
      },<br>
      { "type": "Feature", "properties": { "foo": ["a", "b"] },
      "geometry": null }<br>
      ]<br>
      }</p>
    <p>$ ogrinfo -al out.geojson -q<br>
      <br>
      Layer name: out<br>
      OGRFeature(out):0<br>
        foo (String(JSON)) = str<br>
      <br>
      OGRFeature(out):1<br>
        foo (String(JSON)) = 0<br>
      <br>
      OGRFeature(out):2<br>
        foo (String(JSON)) = [ "a", "b" ]<br>
      <br>
    </p>
    <p>In theory, we should report "str", not just str. A GDAL 4.0
      topic... ? Just recorded it in
      <a class="moz-txt-link-freetext" href="https://github.com/OSGeo/gdal/issues/8440#issuecomment-2368801316">https://github.com/OSGeo/gdal/issues/8440#issuecomment-2368801316</a><br>
    </p>
    <p>To actually answer your last question, this is a bit more subtle
      than the above. For example, if there's a mix of strings and array
      of strings, we report a StringList field. If there's a mix of
      integer and floating-point numbers, we report a Real field (which
      is OK since JSON has just a "numeric" type)</p>
    <p>Even<br>
    </p>
    <div class="moz-cite-prefix">Le 23/09/2024 à 18:17, Sean Gillies via
      gdal-dev a écrit :<br>
    </div>
    <blockquote type="cite"
cite="mid:CAOodmJoANL0PdS91SY82HverbJ2okd_hHcbb_9hGfmZCzXbGsw@mail.gmail.com">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <div dir="ltr">
        <div>Hi all,</div>
        <div><br>
        </div>
        <div>The good thing about GeoJSON is that you don't need
          specialized GIS software to create it. The bad thing about
          GeoJSON is that people create it using software with none of
          the familiar GIS constraints.</div>
        <div><br>
        </div>
        <div>I've been looking at a collection of features that have the
          same set of properties (good), but one of the properties has a
          mix of strings (strings of digits, specifically) and unquoted
          numbers (0, specifically). In versions <= 3.5, GDAL detects
          this field's type to be "String". In versions >= 3.6, the
          field type is "String(JSON)". Is this intended behavior? Will
          all such fields be found to be "String(JSON)", or does it
          depend on their content?<br>
        </div>
        <br>
        <span class="gmail_signature_prefix">-- </span><br>
        <div dir="ltr" class="gmail_signature"
          data-smartmail="gmail_signature">Sean Gillies</div>
      </div>
      <br>
      <fieldset class="moz-mime-attachment-header"></fieldset>
      <pre class="moz-quote-pre" wrap="">_______________________________________________
gdal-dev mailing list
<a class="moz-txt-link-abbreviated" href="mailto:gdal-dev@lists.osgeo.org">gdal-dev@lists.osgeo.org</a>
<a class="moz-txt-link-freetext" href="https://lists.osgeo.org/mailman/listinfo/gdal-dev">https://lists.osgeo.org/mailman/listinfo/gdal-dev</a>
</pre>
    </blockquote>
    <pre class="moz-signature" cols="72">-- 
<a class="moz-txt-link-freetext" href="http://www.spatialys.com">http://www.spatialys.com</a>
My software is free, but my time generally not.</pre>
  </body>
</html>