Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: link issue HLWGP-183 verwijderd

Bij het configureren van een formulier waarmee je de features van een WFST-laag kunt bewerken kun je in het venster Veld bewerken met de instelling Elementtype aangeven om wat voor soort veld het gaat, zoals een tekst, een keuzelijst, een schuifregelaar of een selectievakje. Sinds WGP versie 4.6.1 is aan deze beschikbare elementtypen het type 'JSON' toegevoegd. Dit type is alleen toepasbaar op een tekstveld (veldtype String).

Elementtype 'JSON' biedt de mogelijkheid om in een tekstveld als platte tekst een JSON-object te zetten en dit object vervolgens in de feature-info weer uit te lezen (parseren) met behulp van templatetaal Velocity. Het elementtype wordt bij het parseren gebruikt om aan te geven dat de veldwaarde een JSON-object betreft en niet een willekeurige tekststring. Zie de documentatie van Velocity voor meer informatie over hoe hoe je met Velocity een JSON-object kunt uitlezen (zie ook het volgende voorbeeld).

Warning
titleAttentie!

Je kunt elementtype 'JSON' niet gebruiken voor een tekstveld dat 'type' heet. In dat geval kan Velocity de veldwaarde niet als een JSON-object verwerkenIn de code van het JSON-object kun je geen attributen met de naam 'type' gebruiken.


Expand
titleVoorbeeld JSON-tabel ...

Het volgende voorbeeld toont een tekstveld 'json' met als veldwaarde een tabel in de vorm van een JSON-object die in de feature-info met Velocity wordt uitgelezen. Het veld heeft als elementtype 'JSON' en als waarde de volgende JSON-tabel:

Code Block
[
    { "boomid": 1, "meldingen": [{ "mtype": 0, "melding": "schade" }] },
    {
        "boomid": 2,
        "meldingen": [
            { "mtype": 0, "melding": "rommel" },
            { "mtype": 1, "melding": "tak afgebroken" }
        ]
    },
    { "boomid": 3, "meldingen": [] }
]

De tabel is in het tekstveld opgeslagen als platte tekst. De tabel toont de meldingen van een boominspectie en heeft drie records (boom 1, boom 2 en boom 3) met 1 melding voor de eerste boom, 2 meldingen voor de tweede boom en geen meldingen voor de derde boom.

De volgende Velocity-code in de template van de feature-info zal in de feature-info de hele tabel uitlezen:

Code Block
#foreach($row in $json)
<h3>Boom ID: $row.boomid</h3>
  #if ($row.meldingen.Count > 0)
    <ul>
    #foreach($melding in $row.meldingen)
      <li>[type $melding.mtype] $melding.melding</li>
    #end
    </ul>
  #else
    Geen meldingen voor deze boom.
  #end
#end

Velocity maakt daarbij gebruik van de eigenschappen van het JSON-object. 

...