JSONParsedState

Returnerar 0 om JSON inte har parsats, -1 om JSON har parsats men är ogiltig, eller ett positivt tal som representerar JSON-typen om den parsats och är giltig.

Format 

JSONParsedState ( json )

Parametrar 

json – ett textuttryck eller fält som innehåller ett JSON-objekt eller -matris.

Returnerad datatyp 

nummer

Ursprungsversion 

22.0

Beskrivning 

JSONParsedState anger om angiven JSON har parsats (och har en binär representation i minnet) och om JSON är giltigt eller ogiltigt. Funktionen returnerar:

  • 0 om JSON inte har blivit parsats (ingen binär representation finns i minnet).

  • -1 om JSON har parsats men är ogiltig. Om JSON används med de andra JSON-funktionerna returnerar de ”?” följt av ett felmeddelande.

  • 1-6 om JSON är giltigt och har parsats. Värdet motsvarar en av JSON-typerna som definieras i JSONSetElement.

Om du uttryckligen vill parsa JSON-text ska du använda Funktionen JSONParse.

Exempel 1 

  1. JSONParse ( "[3]" ) returnerar [3] eftersom JSONParse returnerar ingående JSON som text om det är giltig JSON.

  2. Let ( $a = JSONParse ("[3") ; JSONParsedState ($a) ) returnerar -1 eftersom $a angetts till en parsad men ogiltig JSON-matris.

  3. Let ( $a = "[3]" ; JSONParsedState ($a) ) returnerar 0 eftersom $a inte har parsats.

  4. JSONParsedState ( JSONParse (Pi) ) returnerar -1 eftersom värdet Pi har tolkats men inte är giltig JSON.

  5. Let ( $a = JSONSetElement ( "" ; "a" ; "b" ; JSONString ) ; JSONParsedState ($a) ) returnerar 3 eftersom JSONSetElement skapade ett parsat JSON-objekt som lagras i $a.

  6. Let ( $a = JSONParse ("[3]") ; JSONParsedState ($a) ) returnerar 4 eftersom $a har parsats och innehåller en JSON-matris.

  7. JSONParsedState ( JSONParse ("") ) returnerar -1 eftersom en tom sträng har parsats men den är ogiltig som JSON.

Exempel 2 

Kopiera
Let ( [
  a = "[3";                      /* Strängen är en ogiltig JSON-matris */
  b = JSONParse ( a ) ;          /* Fel: Indata är ogiltig JSON */
  c = JSONParsedState ( a ) ;    /* 0: 'a' är bara text ännu (har inte parsats) */
  d = JSONParsedState ( b ) ;    /* -1: 'b' har parsats men är ogiltigt */
  e = JSONFormatElements ( b ) ; /* Fel: 'b' är ogiltigt */
  f = JSONFormatElements ( a )   /* Fel: JSON-text i 'a' är ogiltig */
] ;
  a &¶& b &¶& c &¶& d &¶& e &¶& f
)

Returnerar:

Kopiera
[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

Om variabeln a däremot är en giltig JSON-matris ("[3]"), returnerar det här exemplet följande:

Kopiera
[3]
[3]
0
4
[ 3 ]
[ 3 ]

Notera dessa skillnader:

  • Rad 2: JSONParse ( a ) returnerar den ursprungliga texten som skickades in JSONParse.

  • Rad 4: JSONParsedState ( b ) återspeglar att variabel b har parsats och är en giltig JSON-matris.

  • Rad 5 och 6: JSONFormatElements returnerar formaterad text för både parsad JSON i b och JSON som text i a.