LlJson2List/fr

From Second Life Wiki
Jump to navigation Jump to search

Description

Fonction: list llJson2List( string src );

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" ]

Exemples

Voir également

Fonctions

•  llList2Json
•  llJsonGetValue
•  llJsonSetValue
•  llJsonValueType

Articles

•  Typecast

Notes avancées

Historique

Date de Release 20/05/2013

Vous cherchez encore des informations ? Peut-être cette page du LSLwiki pourra vous renseigner.