JsonSet - スクリプトおよびチャート関数
JsonSet() は、JSON (JavaScript Object Notation) データを含んでいる文字列を変更します。パスにより指定される新しい場所を使用した JSON 値を設定もしくは挿入することができます。データは有効な JSON にする必要がありますが、余分なスペースや改行を含めることができます。
構文:
value JsonSet(json, path, value)
戻り値データ型: デュアル
引数
json
|
JSON データを含む文字列。 |
path
|
パスは RFC6901 に従って指定する必要があります。これにより、複雑なサブストリングまたはインデックス関数や連結を使用せずに、JSON データ内にプロパティを構築できます。
|
value
|
JSON 形式の新しい文字列値。 |
例: 有効および無効なチャートの数式
JsonSet( '{}','/a','"b"' )
|
{"a":"b"} を返します |
JsonSet( '[]','/0','"x"' )
|
["x"] を返します |
JsonSet( '"abc"','','123' )
|
123 を返します |
JsonSet( '"abc"','/x','123' )
|
null を返します。パスが JSON データの有効な部分を指していません。 |
JsonSet( '{"a":{"b":"c"}}','a/b','"x"' )
|
null を返します。パスが無効です。 |
JsonSet( '{"a":"b"}','/a','abc' )
|
null を返します。値は有効な JSON ではありません。文字列は引用符で囲む必要があります。 |
例 - JsonSet の基本
概要
JSON データを 1 行のテキスト文字列として受け取ります。品の価格と注文の合計価格を更新したいと考えています。
データ ロード エディターを開き、以下のロード スクリプトを新しいタブに追加します。
ロード スクリプトには次が含まれています。
ロード スクリプト
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 }'
];
結果
データをロードしてシートを開きます。新しいテーブルを作成し、この項目を軸として追加します:
次のメジャーを作成します:
JsonSet(JsonSet(OrderDetails,'/items/price',1100),'/total_price',2200) は、JSON 文字列内のそれぞれのキーへの正しいパスを使用して、価格を 1100 に、合計価格を 2200 に設定します。
結果テーブル OrderDetails | JsonSet(JsonSet(OrderDetails,'/items/price',1100),'/total_price',2200) |
---|
{ "order_id": "12345", "customer": { "name": "John Doe", "email": "john.doe@example.com"}, "items": {"product": "Laptop", "quantity": 2, "price": 1200 }, "total_price": 2400 } | {"order_id":"12345","customer":{"name":"John Doe","email":"john.doe@example.com"},"items":{"product":"Laptop","quantity":2,"price":1100},"total_price":2200} |
メジャーの出力により、price キーと total price キーがそれぞれ 1100 と 2200 に更新されます。
参照先: