LlJson2List/fr
LSL Portail Francophone | LSL Portail Anglophone | Fonctions | Évènements | Types | Operateurs | Constantes | Contrôle d'exécution | Bibliothèque | Tutoriels |
Description
Fonction: list llJson2List( string src );? | N° de fonction |
0.0 | Delais |
10.0 | Energie |
Cette fonction prend une chaîne de caractères en entrée (voir JSON), et renvoie une liste
Renvoie un list liste parsée à partir de src
• string | src |
Pour convertir une liste en une une chaîne de caractères formatée JSON , utilisez llList2Json.
Spécifications
Voir Json_usage_in_LSL
- Si la chaîne de caractères JSON représente un simple élément qui n est ni un objet JSON , ni un tableau JSON , alors une simple liste avec ce seul élément est retourné
Exemple : soit la chaîne JSON : <javascript>
"clé numéro 1": "valeur alpha", "clé numéro 2": "valeur beta"
</javascript> On n a pas d objet JSON ( pas de "{" ) => la fonction retourne une liste avec un seul élément avec tout le contenu de la chaîne de caractères JSON
- Si la chaîne de caractères JSON représente un objet JSON , alors la liste est une liste stridée avec les clés et les valeurs de ces objets JSONs.
Exemple : soit la chaîne JSON : <javascript> {
"clé numéro 1": "valeur alpha", "clé numéro 2": "valeur beta"
} </javascript> => la fonction retourne une liste de 4 éléments :
"clé numéro 1" |
"valeur alpha" |
"clé numéro 2" |
"valeur beta" |
Il semble aussi que dans le standard JSON , le nom des clés doit être unique . Néanmoins , la fonction est un peu plus permissive et retourne sans erreur quand c est le cas . Par exemple , dans l exemple ci dessus, si on avait eu deux "clé numéro 1" , la fonction aurait retourné une liste de 4 éléments
- Si la chaîne de caractères JSON représente un objet JSON , et que cet objet est composé lui même d'autres objets JSON ou de tableaux JSON , la liste en sortie ne peut pas contenir de sous listes . Donc, l'arborescence du sous-objet ou du sous-tableau sera une simple chaîne de caractères avec la concaténation de son arborescence .
Par exemple : <javascript> {
"clé numéro 1": "valeur alpha", "clé numéro 2": { "sous clé numéro 1" : "valeur a", "sous clé numéro 2" : "valeur b" }
} </javascript> => on a deux objets au premier niveau de l'arborescence . Le second objet "clé numéro 2" a deux sous-sous objets "sous clé numéro 1", "sous clé numéro 2". La fonction retourne 4 éléments ( 2 paires clés valeurs ) :
"clé numéro 1" |
"valeur alpha" |
"clé numéro 2" |
"sous clé numéro 1" : "valeur a", "sous clé numéro 2" : "valeur b" |
Le quatrième élément qui ne peut pas se représenter par une liste imbriquée parce que LSL ne permet pas les listes imbriquée
décrit toute l'arborescence à ce niveau .
On peut extraire la valeur de cet élément , et rappeler llJson2List uniquement sur cette valeur pour en extraire une seconde liste
Par exemple , en appelant
<lsl>
list res = llJson2List(llList2String(llJson2List( json ), 3 ));
</lsl>
on aurait notre liste res avec :
"sous clé numéro 1" |
"valeur a" |
"sous clé numéro 2" |
"valeur b" |
- Si la chaîne de caractères JSON représente un tableau JSON , la fonction retourne une liste composée de tous les éléments du tableau JSON
Exemple : soit le tableau JSON <javascript> [ "valeur1", "valeur2", "valeur3" ] </javascript> => La fonction retourne une liste de 3 éléments :
"valeur1" |
"valeur2" |
"valeur3" |
- de la même façon que précédemment pour les objets composés , si le tableau JSON est composé de sous-tableaux ou de sous-objets , ces éléments seront représentés comme une chaîne de caractères concaténée
Exemple : <javascript> [
"valeur1", "valeur2", { "clé objet": "valeur" }, "valeur3", [ "ssous valeur1", "sous valeur2" ]
] </javascript> Ce tableau est composé de deux valeurs simples , puis d une valeur qui représente un objet JSON , puis d une autre valeur simple , puis d une dernière valeur qui représente un tableau . => la fonction retourne une liste de 5 élements
"valeur1" |
"valeur2" |
{ "clé objet": "valeur" } |
"valeur3" |
[ "ssous valeur1", "sous valeur2" ] |