LlJson2List/fr

From Second Life Wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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.