JSONSetElement

オブジェクト名、配列索引、またはパスで指定された JSON データ内の要素を追加または変更します。

構文 

JSONSetElement (json ; キーまたは索引またはパス ; 値 ; タイプ)

引数 

json - JSON オブジェクトまたは配列を含むテキスト式またはフィールド

キーまたは索引またはパス - JSON オブジェクト名 (キー)、配列索引、またはパスを指定する任意のテキスト式またはフィールド。JSON 関数の使い方を参照してください。

- 数値、テキスト、または JSON データを含む任意の式またはフィールド

タイプ - 設定するデータのタイプを指定する数値 (下記参照)

戻り値のデータタイプ 

テキスト

起点バージョン 

16.0

説明 

この関数は指定されたキーまたは索引またはパスの位置にを設定した json を返します。json 引数が空白 ("") である場合は、キーまたは索引またはパス引数の最初の部分が "[" 文字ではじまっていない限り、を JSON オブジェクトに追加します (中カッコ { } で囲む)。引数の最初の部分が "[" 文字ではじまっている場合は、を JSON 配列に追加します (角カッコ [ ] で囲む)。

タイプ引数の場合は次のいずれかの値を使用します。jsonを追加する場合、タイプ引数でを特定の JSON タイプに変換するか、タイプを変更せずにを挿入するかを指定します。

タイプ引数1

引数の入力タイプ

出力タイプ

JSONString (1)

FileMaker テキスト

JSON 文字列 (" ")

JSONNumber (2)

FileMaker 数字

JSON 数字

JSONObject (3)

JSON オブジェクト

JSON オブジェクト ({ })

JSONArray (4)

JSON 配列

JSON 配列 ({ })

JSONBoolean (5)

FileMaker 値または JSON 論理値

JSON 論理値

JSONNull (6)

タイプは無視

JSON Null

JSONRaw (0)

JSON 要素

JSON 要素 (が有効な JSON ではない場合は JSON 文字列)

  1. 名前付きの定数またはカッコ内の数値のいずれかを使用してタイプを指定できます (引用符なしの「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 

JSON オブジェクトを別の JSON オブジェクトの要素として追加します。$$JSON 変数に

コピー
{
    "a" : {
        "id" : 12,
        "lnk" : 34
    }
}

が設定されている場合は

コピー
JSONFormatElements ( 
   JSONSetElement ($$JSON ; "b" ; "{\"id\" : 14, \"lnk\" : 73} " ; 
      JSONObject 
   )
)

は次を返します。

コピー
{
    "a" :
    {
        "id" : 12,
        "lnk" : 34
    },
    "b" :
    {
        "id" : 14,
        "lnk" : 73
    }
}

例 3 

$$JSON 変数に保存された JSON データの例から配列の 1 番目の「製品」要素の「特売」と「在庫」キーの値を変更します。

コピー
JSONFormatElements ( 
   JSONSetElement ($$JSON ; 
   ["ベーカリー.製品[0].特売" ; 0 ; JSONBoolean] ; 
   ["ベーカリー.製品[0].在庫" ; 0 ; JSONNumber] 
   )
)

は $$JSON と同じデータを返しますが、「製品」配列の最初の要素を次に変更します。

コピー
{
    "カテゴリ" : "パン",
    "id" : "FB1",
    "名前" : "ドーナツ",
    "価格" : 1.99,
    "特売" : false,
    "在庫" : 0
}