Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

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 een JSON-object als platte tekst 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).

Attentie!

Je kunt elementtype 'JSON' niet gebruiken voor een tekstveld dat 'type' heet. In dat geval kan Velocity de veldwaarde niet als een JSON-object verwerken.

 Voorbeeld 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:

[
    { "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:

#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. 

  • No labels