JSONParsedState

Devuelve 0 si no se ha analizado JSON, -1 si se ha analizado, pero no es válido; o un número positivo que representa el tipo de JSON, si se ha analizado y es válido.

Formato 

JSONParsedState ( json )

Parámetros 

json - any text expression or field that contains a JSON object or array.

Tipo de datos devuelto 

número

Se origina en 

22.0

Descripción 

JSONParsedState indica si el contenido JSON especificado se ha analizado (y tiene una representación binaria en la memoria), y si es válido o no. Esta función devuelve:

  • 0 si no se ha analizado el contenido JSON (no existe representación binaria en la memoria).

  • -1 si se ha analizado el contenido JSON, pero no es válido. Si este contenido JSON se utiliza con las otras funciones JSON, estas devuelven "?". seguido de un mensaje de error.

  • 1-6 si el JSON es válido y se ha analizado. El valor se corresponde con uno de los tipos JSON definidos en JSONSetElement.

Para analizar explícitamente texto JSON, utilice la función JSONParse.

Ejemplo 1 

  1. JSONParse ( "[3]" ) devuelve [3] porque JSONParse devuelve el contenido JSON de entrada como texto si este es válido.

  2. Let ( $a = JSONParse ("[3") ; JSONParsedState ($a) ) devuelve -1 porque $a es una matriz JSON analizada, pero no válida.

  3. Let ( $a = "[3]" ; JSONParsedState ($a) ) devuelve 0 porque $a no se ha analizado.

  4. JSONParsedState ( JSONParse (Pi) ) devuelve -1 porque el valor de Pi se ha analizado, pero no es contenido JSON válido.

  5. Let ( $a = JSONSetElement ( "" ; "a" ; "b" ; JSONString ) ; JSONParsedState ($a) ) devuelve 3 porque JSONSetElement ha creado un objeto JSON analizado almacenado en $a.

  6. Let ( $a = JSONParse ("[3]") ; JSONParsedState ($a) ) devuelve 4 porque $a se ha analizado y contiene una matriz JSON.

  7. JSONParsedState ( JSONParse ("") ) devuelve -1 porque se ha analizado una cadena vacía, que es contenido JSON no válido.

Ejemplo 2 

Copiar
Let ( [
  a = "[3";                      /* La cadena es una matriz JSON no válida. */
  b = JSONParse ( a ) ;          /* Error: la entrada es contenido JSON no válido. */
  c = JSONParsedState ( a ) ;    /* 0: 'a' sigue siendo solo texto (no analizado). */
  d = JSONParsedState ( b ) ;    /* -1: 'b' se ha analizado, pero no es válido. */
  e = JSONFormatElements ( b ) ; /* Error: 'b' no es válido. */
  f = JSONFormatElements ( a )   /* Error: el texto JSON de 'a' no es válido. */
] ;
  a &¶& b &¶& c &¶& d &¶& e &¶& f
)

Devuelve:

Copiar
[3
? * Línea 1, Columna 3
  Falta ',' o ']' en la declaración de matriz
0
-1
? * Línea 1, Columna 3
  Falta ',' o ']' en la declaración de matriz
? * Línea 1, Columna 3
  Falta ',' o ']' en la declaración de matriz

Por el contrario, si la variable a es una matriz JSON válida ("[3]"), este ejemplo devuelve:

Copiar
[3]
[3]
0
4
[ 3 ]
[ 3 ]

Tenga en cuenta estas diferencias:

  • Línea 2:  JSONParse ( a ) devuelve el texto original transferido a JSONParse.

  • Línea 4: JSONParsedState ( b ) refleja que la variable b se ha analizado y es una matriz JSON válida.

  • Líneas 5 y 6: JSONFormatElements devuelve texto con formato para el contenido JSON analizado en b y el contenido JSON de texto en a.