JSONSetElement
オブジェクト名、配列索引、またはパスで指定された JSON データ内の要素を追加または変更します。
構文
JSONSetElement (json ; キーまたは索引またはパス ; 値 ; タイプ)
引数
json
- JSON オブジェクトまたは配列を含むテキスト式またはフィールド
キーまたは索引またはパス
- JSON オブジェクト名 (キー)、配列索引、またはパスを指定する任意のテキスト式またはフィールド。JSON 関数の使い方を参照してください。
値
- 数値、テキスト、または JSON データを含む任意の式またはフィールド
タイプ
- 設定するデータのタイプを指定する数値 (下記参照)
戻り値のデータタイプ
テキスト
起点バージョン
16.0
説明
この関数は指定されたキーまたは索引またはパス
の位置に値
を設定した json
を返します。json
引数が空白 ("") である場合は、キーまたは索引またはパス
引数の最初の部分が "[" 文字ではじまっていない限り、値
を JSON オブジェクトに追加します (中カッコ { } で囲む)。引数の最初の部分が "[" 文字ではじまっている場合は、値
を JSON 配列に追加します (角カッコ [ ] で囲む)。
タイプ
引数の場合は次のいずれかの値を使用します。json
に値
を追加する場合、タイプ
引数で値
を特定の JSON タイプに変換するか、タイプを変更せずに値
を挿入するかを指定します。
|
|
出力タイプ |
|
FileMaker テキスト |
JSON 文字列 (" ") |
|
FileMaker 数字 |
JSON 数字 |
|
JSON オブジェクト |
JSON オブジェクト ({ }) |
|
JSON 配列 |
JSON 配列 ({ }) |
|
FileMaker 値または JSON 論理値 |
JSON 論理値 |
|
タイプは無視 |
JSON Null |
|
JSON 要素 |
JSON 要素 ( |
-
名前付きの定数またはカッコ内の数値のいずれかを使用して
タイプ
を指定できます (引用符なしの「JSONString
」や「1」など)。
JSONBoolean
では、値
が true
または 0 以外の数字の場合は真として扱われ、値
が false
または 0 の場合は偽として扱われます。それ以外の場合は、If 関数のテキスト
引数と同じ方法で値
が true か false かが決定されます。
JSONRaw
では、JSON パーサによって値
が処理されて有効な JSON 構文を使用しているかどうかを判定します。値
が有効な JSON である場合、要素は JSON データタイプに変換されず、解析された結果がこの関数の戻り値で使用されます。値
の中で最初の JSON 要素の後にある文字は無視されます。たとえば、値
が「4,2」の場合、JSON 構文では、コンマは要素のセパレータであるため、「4」のみが挿入されます。値
が有効な JSON ではない場合、戻り値で JSON 文字列に変換されます。
キーまたは索引またはパス
、値
、およびタイプ
引数のセットを要素ごとに角カッコ [ ] で囲んで追加することで複数の要素を設定できます。次の構文で N 個の要素を一度に設定します:
JSONSetElement ( json ;
[キーまたは索引またはパス1 ; 値1 ; タイプ1 ] ;
[キーまたは索引またはパス2 ; 値2 ; タイプ2 ] ;
...
[キーまたは索引またはパスN ; 値N ; タイプN ]
)
例 1
キーとその値を JSON オブジェクトのルートに追加します。
JSONSetElement ("{\"a\" : 11}" ; "b" ; 22.23 ; JSONNumber)
は「{"a":11,"b":22.23}」を返します。
例 2
配列を作成、"[+]"
構文を使用して 1 つの要素 (JSON オブジェクト) を追加、次に "[:]"
構文を使用してその要素を配列の最後の要素として参照してオブジェクトに別のキーと値のペアを追加します。
JSONSetElement("[]";
["[+].a", 5, JSONNumber] ;
["[:].b", 6, JSONNumber]
)
は [{"a":5,"b":6}] を返します。
例 3
JSON オブジェクトを別の JSON オブジェクトの要素として追加します。$$JSON 変数に
が設定されている場合は
JSONFormatElements (
JSONSetElement ($$JSON ; "b" ; "{\"id\" : 14, \"lnk\" : 73} " ;
JSONObject
)
)
は次を返します。
例 4
$$JSON 変数に保存された JSON データの例から配列の 1 番目の「製品」要素の「特売」と「在庫」キーの値を変更します。
JSONFormatElements (
JSONSetElement ( $$JSON ;
["ベーカリー.製品[0].特売" ; 0 ; JSONBoolean] ;
["ベーカリー.製品[0].在庫" ; 0 ; JSONNumber]
)
)
は $$JSON と同じデータを返しますが、「製品」配列の最初の要素を次に変更します。