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
-
JSONParse ( "[3]" )
retorna [3] porque JSONParse retorna o JSON de entrada como texto se for um JSON válido. -
Let ( $a = JSONParse ("[3") ; JSONParsedState ($a) )
retorna -1 porque $a foi definido como uma matriz JSON analisada, mas inválida. -
Let ( $a = "[3]" ; JSONParsedState ($a) )
retorna 0 porque $a não foi analisada. -
JSONParsedState ( JSONParse (Pi) )
retorna -1 porque o valor Pi foi analisado, mas não é JSON válido. -
Let ( $a = JSONSetElement ( "" ; "a" ; "b" ; JSONString ) ; JSONParsedState ($a) )
retorna 3 porque JSONSetElement criou um objeto JSON analisado armazenado em $a. -
Let ( $a = JSONParse ("[3]") ; JSONParsedState ($a) )
retorna 4 porque $a foi analisado e contém uma matriz JSON. -
JSONParsedState ( JSONParse ("") )
retorna -1 porque uma string vazia foi analisada, que é um JSON inválido.
Exemplo 2
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:
[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:
[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ávelb
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 ema
.