Olivier.b 10 Posted October 26, 2017 Report Share Posted October 26, 2017 Bonjour à tous, Me voilà rentré de la conf et je me lance dans les API. C'est vraiment sympa et j'ai pu avancer avec trello. Je butte néanmoins pour parser "text" : Il y en a deux, comment faire pour: 1- savoir qu'il y en a 2 2- l'extraire. ... on l'a pas eu le temps de le voir en cours... Merci ! [ { "id": "xxxx", "idMemberCreator": "xxxxxx", "data": { "list": { "name": "Demandes", "id": "xxxx" }, "board": { "shortLink": "gLwwceJ2", "name": "Demandes entrantes", "id": "xxxx" }, "card": { "shortLink": "5brtPb8G", "idShort": 1914, "name": "message de moi", "id": "xxxx" }, "text": "il est tard" }, "type": "commentCard", "date": "2017-10-26T20:00:10.223Z", "memberCreator": { "id": "xxxx", "avatarHash": "xxxx", "fullName": "Olivier B", "initials": "OBE", "username": "olivierb" } }, { "id": "xxxx", "idMemberCreator": "xxxx", "data": { "list": { "name": "Demandes", "id": "xxxx" }, "board": { "shortLink": "gLwwceJ2", "name": "Demandes entrantes", "id": "xxxx" }, "card": { "shortLink": "5brtPb8G", "idShort": 1914, "name": "message de moi", "id": "xxxx" }, "text": "écrire un message" }, "type": "commentCard", "date": "2017-10-26T19:58:29.533Z", "memberCreator": { "id": "xxxx", "avatarHash": "xxxxx", "fullName": "Olivier B", "initials": "OBE", "username": "olivierb" Quote Link to post Share on other sites
0 David Julot 102 Posted October 27, 2017 Report Share Posted October 27, 2017 Bonsoir, Pour connaître le nombre de clef text, nous pouvons utiliser la formule Occurrences ( json ; Citation ( "text" ) & ":" ) Maintenant pour l'extraire, il me faudrait le json complet, car celui-ci est incomplet. Quote Link to post Share on other sites
0 Olivier.b 10 Posted October 27, 2017 Author Report Share Posted October 27, 2017 [ { "data" : { "board" : { "id" : "xxx", "name" : "Demandes entrantes", "shortLink" : "xxx" }, "card" : { "id" : "xxx", "idShort" : 1914, "name" : "message de xxx", "shortLink" : "xxx" }, "list" : { "id" : "xxx", "name" : "Demandes" }, "text" : "il est tard" }, "date" : "2017-10-26T20:00:10.223Z", "id" : "59f23ecad30c91a90c153fee", "idMemberCreator" : "xxx", "memberCreator" : { "avatarHash" : "xxx", "fullName" : "Olivier b", "id" : "xxxx", "initials" : "OBE", "username" : "olivierb" }, "type" : "commentCard" }, { "data" : { "board" : { "id" : "xxxx", "name" : "Demandes entrantes", "shortLink" : "xxx" }, "card" : { "id" : "xxxx", "idShort" : 1914, "name" : "message de b", "shortLink" : "xx" }, "list" : { "id" : "xxxx", "name" : "Demandes" }, "text" : "écrire un message" }, "date" : "2017-10-26T19:58:29.533Z", "id" : "59f23e65c147e1ddf4eba72c", "idMemberCreator" : "xxx", "memberCreator" : { "avatarHash" : "xxxx", "fullName" : "Olivier b", "id" : "xxxx", "initials" : "OBE", "username" : "olivierb" }, "type" : "commentCard" }] C'est le résultat du JSONFormatElement il y a 23 minutes, David Julot a dit : Bonsoir, Pour connaître le nombre de clef text, nous pouvons utiliser la formule Occurrences ( json ; Citation ( "text" ) & ":" ) Maintenant pour l'extraire, il me faudrait le json complet, car celui-ci est incomplet. Le résultat = 0 Quote Link to post Share on other sites
0 FredoMkb 41 Posted October 27, 2017 Report Share Posted October 27, 2017 Salut, Pour connaitre le nombre de neuds d'un objet Json, ou d'éléments d'un tableau, il faut utiliser la fonction "JSONListKeys()", de cette manière : DecompteValeurs ( JSONListKeys ( $JSON ; "" ) ) Quote Link to post Share on other sites
0 David Julot 102 Posted October 27, 2017 Report Share Posted October 27, 2017 Alors, pour récupérer le 1er text : JSONGetElement ( json ; ".[0].data.text" ) pour le 2e text : JSONGetElement ( json ; ".[1].data.text" ) On peut, pour récupérer toutes les valeurs text utiliser un script de ce type : Définir variable [$json; Valeur :json::json]Définir variable [$tab; Valeur :JSONListKeys ( $json ; "." )]Définir variable [$nb; Valeur :DecompteValeurs ( $tab )]#Boucle Fin de boucle si [Definir ( $i = $i + 1 ; $i > $nb )] Définir variable [$T; Valeur :Cas ( Not EstVide ( $T ) ; $T & ¶ ) & JSONGetElement ( $json ; ".[" & ObtenirValeur ( $tab ; $i ) & "].data.text" )]Fin de boucle#Fin de script [] Quote Link to post Share on other sites
0 Clem 184 Posted October 27, 2017 Report Share Posted October 27, 2017 Bonsoir, Je pense pas que la fonction Occurrences soit appropriée, l'ensemble clé/valeurs de chaque objet, n'est pas forcément distribué de manière identique; ne peux contenir les mêmes éléments. … [ { "id": "1", "type": "commentCard", "date": "2017-10-26T20:00:10.223Z" }, { "id": "5", "idMemberCreator": "zzz", "date": "2014-09-21T05:00:00.123Z" }] Quote Link to post Share on other sites
0 David Julot 102 Posted October 27, 2017 Report Share Posted October 27, 2017 à l’instant, Clem a dit : Bonsoir, Je pense pas que la fonction Occurrences soit appropriée, l'ensemble clé/valeurs de chaque objet, n'est pas forcément distribués de manière identique … [ { "id": "1", "type": "commentCard", "date": "2017-10-26T20:00:10.223Z" }, { "id": "5", "idMemberCreator": "zzz", "date": "2014-09-21T05:00:00.123Z" }] Je suis tout à fait d'accord, mais vu le premier extrait fourni, c'était une première approche… Quote Link to post Share on other sites
0 Olivier.b 10 Posted October 29, 2017 Author Report Share Posted October 29, 2017 merci !. c'est le [0] sans texte accolé qui m'a mis en erreur. c'est sioux. Quote Link to post Share on other sites
Question
Olivier.b 10
Bonjour à tous,
Me voilà rentré de la conf et je me lance dans les API. C'est vraiment sympa et j'ai pu avancer avec trello.
Je butte néanmoins pour parser "text" : Il y en a deux, comment faire pour:
1- savoir qu'il y en a 2
2- l'extraire.
... on l'a pas eu le temps de le voir en cours...
Merci !
[
{
"id": "xxxx",
"idMemberCreator": "xxxxxx",
"data": {
"list": {
"name": "Demandes",
"id": "xxxx"
},
"board": {
"shortLink": "gLwwceJ2",
"name": "Demandes entrantes",
"id": "xxxx"
},
"card": {
"shortLink": "5brtPb8G",
"idShort": 1914,
"name": "message de moi",
"id": "xxxx"
},
"text": "il est tard"
},
"type": "commentCard",
"date": "2017-10-26T20:00:10.223Z",
"memberCreator": {
"id": "xxxx",
"avatarHash": "xxxx",
"fullName": "Olivier B",
"initials": "OBE",
"username": "olivierb"
}
},
{
"id": "xxxx",
"idMemberCreator": "xxxx",
"data": {
"list": {
"name": "Demandes",
"id": "xxxx"
},
"board": {
"shortLink": "gLwwceJ2",
"name": "Demandes entrantes",
"id": "xxxx"
},
"card": {
"shortLink": "5brtPb8G",
"idShort": 1914,
"name": "message de moi",
"id": "xxxx"
},
"text": "écrire un message"
},
"type": "commentCard",
"date": "2017-10-26T19:58:29.533Z",
"memberCreator": {
"id": "xxxx",
"avatarHash": "xxxxx",
"fullName": "Olivier B",
"initials": "OBE",
"username": "olivierb"
Link to post
Share on other sites
7 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.