IsJson - スクリプトおよびチャート関数
IsJson() は、指定された文字列に有効な JSON (JavaScript Object Notation) データが含まれているかどうかをテストします。特定の JSON データ タイプを検証することもできます。
構文:
value IsJson(json [, type])
戻り値データ型: デュアル
引数
json
|
テストする文字列。余分なスペースまたは改行を含めることができます。 |
type
|
テストする JSON データ型を指定するオプションの引数。
-
'value' (既定)
-
'object'
-
'array'
-
'string'
-
'number'
-
'Boolean'
-
'null'
|
例: 有効および無効なチャートの数式
IsJson( 'null' )
|
-1 (true) を返します |
IsJson( '"abc"', 'value' )
|
-1 (true) を返します |
IsJson( '"abc"', 'string' )
|
-1 (true) を返します |
IsJson( 123, 'number' )
|
-1 (true) を返します |
IsJson( 'text' )
|
0 (false) を返します。'text' は有効な JSON 値ではありません。 |
IsJson( '"text"', 'number' )
|
0 (false) を返します。'"text"' は有効な JSON 数ではありません。 |
IsJson( '"text"', 'text' )
|
0 (false) を返します。'text' は有効な JSON タイプではありません。 |
例 - IsJson の基本
概要
データ ロード エディターを開き、以下のロード スクリプトを新しいタブに追加します。
ロード スクリプトには次が含まれています。
「Example」というデータ テーブルにロードされるデータセット。
データ テーブル内の 1 つの項目は API_Response と呼ばれます。
ID という派生項目。この項目は Rec() 関数を使用して入力レコードを列挙します。
ロード スクリプト
Example:
Load
Recno() AS ID, API_Response
inline [
API_Response
'{"id": 1, "name": "Alice"}'
'{"id": 2, "name": "Bob"}'
'{invalid json string}'
'{"id": 4, "name": "Charlie"}'
'{"id": 5, name: "David"}'
];
結果
データをロードしてシートを開きます。新しいテーブルを作成し、これらの項目を軸として追加します:
次の計算軸を作成します。
結果テーブル ID | API_Response | IsJson(API_Response) |
---|
1 | {"id": 1, "name": "Alice"} | -1 (true) |
2 | {"id": 2, "name": "Bob"} | -1 (true) |
3 | {invalid json string} | 0 (false) |
4 | {"id": 4, "name": "Charlie"} | -1 (true) |
5 | {"id": 5, name: "David"} | 0 (false) |
出力は、有効な JSON 構文を持つ値に対して -1、または true を返します。
出力は、無効な JSON を持つ次の ID レコード (3 と 5) に対して0、または false を返します。
{invalid json string} ― テキスト文字列が有効な JSON 応答構造を表していません。
{"id": 5, name: "David"} ― 2 番目のキーと値のペアには、キー "name" を囲む引用符がありません 。
例 - IsJson のシナリオ
概要
データ ロード エディターを開き、以下のロード スクリプトを新しいタブに追加します。
ロード スクリプトには次が含まれています。
ロード スクリプト
Example:
Load *
INLINE [OrderDetails
'{ "order_id": "12345", "customer": { "name": "John Doe", "email": "john.doe@example.com"}, "items": {"product": "Laptop", "quantity": 2, "price": 1200 }, "total_price": 2400 }'
];
結果
データをロードしてシートを開きます。新しいテーブルを作成し、この項目を軸として追加します:
次のメジャーを作成します:
IsJson( OrderDetails)で、OrderDetails の値が有効な JSON かどうかを計算します。
IsJson( JsonGet ( OrderDetails, '/items/price' ), 'number' ) は、関数 JsonGet を使用して、price キーの JSON テキストを取得し、price の値が数値であることを検証します。
結果テーブル OrderDetails | IsJson(OrderDetails) | IsJson( JsonGet ( OrderDetails, '/items/price' ), 'number' ) |
---|
{ "order_id": "12345", "customer": { "name": "John Doe", "email": "john.doe@example.com"}, "items": {"product": "Laptop", "quantity": 2, "price": 1200 }, "total_price": 2400 } | -1 (true) | -1 (true) |
OrderDetails には有効な JSON 構文が含まれているため、最初のメジャーは -1 (true) を返します。
2 番目のメジャーは、price キーの値が有効な数字である1200 であるため、-1 (true) を返します。
参照先: