JSONParsedState
JSON が解析されていない場合は 0、解析されていて無効な場合は -1、または解析されていて有効な場合は JSON タイプを表す正の数を返します。
構文
JSONParsedState (json)
引数
json
- JSON オブジェクトまたは配列を含むテキスト式またはフィールド
戻り値のデータタイプ
数字
起点バージョン
22.0
説明
JSONParsedState は指定した JSON が解析されたか (およびメモリにバイナリ表現があるか)、および JSON が有効か無効かを示します。関数の戻り値:
-
JSON が解析されていない (メモリにバイナリ表現が存在しない) 場合は 0 を返します。
-
JSON は解析されたが無効な場合は -1 を返します。この JSON が他の JSON 関数と一緒に使用された場合、「?」とエラーメッセージを返します。
-
JSON が有効で解析されている場合は 1-6 を返します。値は JSONSetElement で定義されている JSON タイプの 1 つに対応します。
JSON テキストを明示的に解析するには、JSONParse 関数を使用します。
例 1
-
JSONParse ("[3]")
は [3] を返します。JSONParse は有効な JSON の場合、入力 JSON をテキストとして返すためです。 -
Let ($a = JSONParse ("[3") ; JSONParsedState ($a))
は $a が解析されたが無効な JSON 配列に設定されているため -1 を返します。 -
Let ($a = "[3]" ; JSONParsedState ($a))
は $a が解析されていないため 0 を返します。 -
JSONParsedState (JSONParse (Pi))
は値 Pi が解析されたが有効な JSON ではないため -1 を返します。 -
Let ($a = JSONSetElement ("" ; "a" ; "b" ; JSONString) ; JSONParsedState ($a))
は JSONSetElement が $a に格納されている解析された JSON オブジェクトを作成したため 3 を返します。 -
Let ($a = JSONParse ("[3]") ; JSONParsedState ($a))
は $a が解析されていて JSON 配列が含まれているため 4 を返します。 -
JSONParsedState (JSONParse (""))
は空の文字列 (無効な JSON) が解析されたため -1 を返します。
例 2
Let ([
a = "[3"; /* 文字列が無効な JSON 配列です */
b = JSONParse (a); /* エラー: 入力が無効な JSON です */
c = JSONParsedState (a); /* 0: 'a' はまだテキストのみです (解析されていません) */
d = JSONParsedState (b); /* -1: 'b' は解析されましたが無効です */
e = JSONFormatElements (b); /* エラー: 'b' は無効です */
f = JSONFormatElements (a) /* エラー: 'a' 内の JSON テキストは無効です */
];
a &¶& b &¶& c &¶& d &¶& e &¶& f
)
この関数が返す値は次のとおりです:
[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
対照的に、変数 a
が有効な JSON 配列 ("[3]") である場合、この例は次の値を返します:
[3]
[3]
0
4
[ 3 ]
[ 3 ]
これらの違いに注意してください:
-
2 行目:
JSONParse ( a )
は JSONParse に渡された元のテキストを返します。 -
4 行目:
JSONParsedState ( b )
は変数b
が解析されて有効な JSON 配列であることを反映しています。 -
5 行目と 6 行目: JSONFormatElements は
b
の解析された JSON と、a
のテキスト JSON の両方のフォーマットされたテキストを返します。