JSONParsedState

Retorna 0 se o JSON não foi analisado, -1 se foi analisado, mas inválido, ou um número positivo que representa o tipo JSON se foi analisado e válido.

Formato 

JSONParsedState (json)

Parâmetros 

json - qualquer expressão de texto ou campo que contém um objeto ou matriz JSON.

Tipo de dados retornado 

número

Originada na versão 

22.0

Descrição 

JSONParsedState indica se o JSON especificado foi analisado (e tem uma representação binária na memória) e se o JSON é válido ou inválido. A função retornará:

  • 0 se o JSON não tiver sido analisado (não existe representação binária na memória).

  • -1 se o JSON foi analisado, mas é inválido. Se este JSON for usado com as outras funções JSON, eles retornam "?" seguido por uma mensagem de erro.

  • 1-6 se o JSON for válido e analisado. O valor corresponde a um dos tipos JSON definidos em JSONSetElement.

Para analisar explicitamente o texto JSON, use a Função JSONParse.

Exemplo 1 

  1. JSONParse ( "[3]" ) retorna [3] porque JSONParse retorna o JSON de entrada como texto se for um JSON válido.

  2. Let ( $a = JSONParse ("[3") ; JSONParsedState ($a) ) retorna -1 porque $a foi definido como uma matriz JSON analisada, mas inválida.

  3. Let ( $a = "[3]" ; JSONParsedState ($a) ) retorna 0 porque $a não foi analisada.

  4. JSONParsedState ( JSONParse (Pi) ) retorna -1 porque o valor Pi foi analisado, mas não é JSON válido.

  5. Let ( $a = JSONSetElement ( "" ; "a" ; "b" ; JSONString ) ; JSONParsedState ($a) ) retorna 3 porque JSONSetElement criou um objeto JSON analisado armazenado em $a.

  6. Let ( $a = JSONParse ("[3]") ; JSONParsedState ($a) ) retorna 4 porque $a foi analisado e contém uma matriz JSON.

  7. JSONParsedState ( JSONParse ("") ) retorna -1 porque uma string vazia foi analisada, que é um JSON inválido.

Exemplo 2 

Copiar
Let ( [
  a = "[3";                      /* String é uma matriz JSON inválida */
  b = JSONParse ( a ) ;          /* Erro: a entrada é um JSON inválido */
  c = JSONParsedState ( a ) ;    /* 0: "a" é apenas texto (não analisado) */
  d = JSONParsedState ( b ) ;    /* -1: "b" foi analisado, mas é inválido */
  e = JSONFormatElements ( b ) ; /* Erro: "b" é inválido */
  f = JSONFormatElements ( a )   /* Erro: o texto JSON em "a" é inválido */
] ;
  a &¶& b &¶& c &¶& d &¶& e &¶& f
)

Retorna:

Copiar
[3
? * Linha 1, Coluna 3
  Ausente ',' ou ']' na declaração de matriz
0
-1
? * Linha 1, Coluna 3
  Ausente ',' ou ']' na declaração de matriz
? * Linha 1, Coluna 3
Faltando "," ou "]" na declaração da matriz

Em contraste, se a variável a for uma matriz JSON válida ("[3]"), este exemplo retorna:

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

Observe estas diferenças:

  • Linha 2: JSONParse ( a ) retorna o texto original passado para JSONParse.

  • A linha 4: JSONParsedState ( b ) reflete que a variável b foi analisada e é uma matriz JSON válida.

  • Linhas 5 e 6: JSONFormatElements retorna texto formatado para o JSON analisado em b e o texto JSON em a.