JSONParsedState

Renvoie la valeur 0 si les données JSON n’ont pas été analysées, la valeur -1 si elles ont été analysées mais ne sont pas valides, ou une valeur positive représentant le type JSON si elles ont été analysées et sont valides.

Format 

JSONParsedState ( json )

Paramètres 

json : une expression ou une rubrique de type Texte qui contient un objet ou un tableau JSON.

Résultat 

Nombre

Provient de la version 

22.0

Description 

JSONParsedState indique si le JSON spécifié a été analysé (et a une représentation binaire en mémoire), et si le JSON est valide ou non. Cette fonction renvoie :

  • 0 si le JSON n'a pas été analysé (aucune représentation binaire n'existe en mémoire).

  • -1 si le JSON a été analysé mais n'est pas valide. Si ce JSON est utilisé avec les autres fonctions JSON, elles renvoient "?" suivi d'un message d'erreur.

  • 1-6 si le JSON est valide et analysé. La valeur correspond à l'un des types JSON définis dans JSONSetElement.

Pour analyser explicitement le texte JSON, utilisez la fonction JSONParse.

Exemple 1 

  1. JSONParse ( "[3]" ) renvoie [3] car JSONParse renvoie le JSON d'entrée sous forme de texte s'il s'agit d'un JSON valide.

  2. Definir ( $a = JSONParse ("[3") ; JSONParsedState ($a) ) renvoie -1 parce que $a a été défini sur un tableau JSON analysé mais invalide.

  3. Definir ( $a = "[3]" ; JSONParsedState ($a) ) renvoie 0 parce que $a n'a pas été analysé.

  4. JSONParsedState ( JSONParse (Pi) ) renvoie -1 parce que la valeur Pi a été analysée mais n'est pas un JSON valide.

  5. Definir ( $a = JSONSetElement ( "" ; "a" ; "b" ; JSONString ) ; JSONParsedState ($a) ) renvoie 3 parce que JSONSetElement a créé un objet JSON analysé, stocké dans $a.

  6. Definir ( $a = JSONParse ("[3]") ; JSONParsedState ($a) ) renvoie 4 car $a a été analysé et contient un tableau JSON.

  7. JSONParsedState ( JSONParse ("") ) renvoie -1 parce qu'une chaîne vide constituant un JSON invalide a été analysée.

Exemple 2 

Copier
Definir ( [
  a = "[3" ;                      /* La chaîne est un tableau JSON invalide */
  b = JSONParse ( a ) ;          /* Erreur: l'entrée est un JSON invalide */
  c = JSONParsedState ( a ) ;    /* 0: 'a' n'est toujours qu'au format texte (non analysé) */
  d = JSONParsedState ( b ) ;    /* -1: 'b' a été analysé mais est invalide */
  e = JSONFormatElements ( b ) ; /* Erreur: 'b' est invalide */
  f = JSONFormatElements ( a )   /* Erreur: le texte JSON dans 'a' est invalide */
] ;
  a &¶& b &¶& c &¶& d &¶& e &¶& f
)

Résultat :

Copier
[3
? * Line 1, Column 3
  Missing ',' or ']' in array declaration
0
-1
? * Line 1, Column 3
  Missing ',' or ']' in array declaration
? * Line 1, Column 3
  Missing ',' or ']' in array declaration

En revanche, si la variable a est un tableau JSON valide ("[3]"), cet exemple renvoie :

Copier
[3]
[3]
0
4
[ 3 ]
[ 3 ]

Prenez note des différences suivantes :

  • Ligne 2 : JSONParse ( a ) renvoie le texte original transmis à JSONParse.

  • Ligne 4 : JSONParsedState ( b ) reflète que la variable b a été analysée et est un tableau JSON valide.

  • Lignes 5 et 6 : JSONFormatElements renvoie du texte formaté pour le JSON analysé dans b et le texte JSON dans a.