TW5 JsonMangler & SelectWidget

#1

Bonjour à tous,
Je rencontre une difficulté avec le plugin TW5 JsonMangler en association avec le SelectWidget. Je n’arrive pas les utiliser avec un objet imbriqué.

Avec un dataTiddler comme celui-ci :

{
  "1": "a",
  "2": "b",
  "3": "c"
}

On peut parcourir les données avec le SelectWidget comme ceci :

<$select field='value'>
<$list filter="[[tiddlerData]indexes[]]" variable="key">
<$set name="val" filter="[[tiddlerData]getindex<key>]">
<option value=<<val>>><<key>></option>
</$set>
</$list>
</$select>

Cool ! :sunglasses:

Mais comment on peut faire avec cet objet imbriqué ? :thinking:

{
  "data": {
    "1": "a",
    "2": "b",
    "3": "c"
  }
}
0 Likes

#2

Salut @Djodo,

Essaie ceci :

<$tiddler tiddler="tiddlerData">
<$select field='value'>
<$list filter="[<currentTiddler>indexes[]]" variable="key">
<$set name="val" filter="[<currentTiddler>getindex<key>]">
<option value=<<val>>>{{{[<currentTiddler>getindex<key>]}}}</option>
</$set>
</$list>
</$select>
</$tiddler> 

Enjoy!

0 Likes

#3

J’étais déjà tombé sur cette solution, mais elle liste aussi les autres objets imbriqués que l’on ne va pas forcément sélectionner. J’aurai dû être plus précis.

Avec cette exemple, cela pose problème si l’on veut seulement sélectionner les valeurs contenue dans “data1” :

{
  "data0": "000",
  "data1": {
    "1": "a",
    "2": "b",
    "3": "c"
  },
  "data2": {
    "11": "aa",
    "22": "bb",
    "33": "cc"
  }
}
1 Like

#4

Ah ben oui, si tu dis :

Patout !

Il te faut alors une expression régulière,

<$tiddler tiddler="tiddlerData">
<$select field='value'>
<$list filter="[<currentTiddler>indexes[]regexp[data1]]" variable="index">
<$set name="val" filter="[<currentTiddler>getindex<index>]">
<option value=<<val>>>{{{[<currentTiddler>getindex<index>]}}}</option>
</$set>
</$list>
</$select>
</$tiddler> 

Enjoy!

0 Likes

#5

Aaaaaaa…GOOD !!! :smiley:

Quand je pense que j’ai dû passer au moins 9h00 à chercher la syntaxe :sweat_smile:

Merci oxydum.

1 Like