アーキテクトのJSON値

アーキテクトのJSONリテラルエディタで、リテラル値を直接設定できるようにJSONを追加します。 アーキテクトの式エディタを使用して、式でJSONを追加することもできます。

メモ: 

アーキテクトのJSONタイプは、JavaScriptのオブジェクト・リテラル・ルールではなく、JSONのルールに厳密に従います。つまり、キーと文字列の値は二重引用符で囲む必要があります。

この記事では、特によく使われるJSON関数を取り上げる: ToJson、ToJsonCollection、JsonParse。 その他のJSON関数については、アーキテクト式ヘルプ を参照してください。

JSONの値

式言語モードでJsonParse関数やToJson関数を使用するか、JSONデータをJSONリテラルエディタで直接入力して、JSON値を設定します。 JSON出力値には変数参照が必要です。

JSONエディタ

JSONタイプの変数では、例えば、Update Dataアクションで、JSONを使用することを選択した後、Click to add JSON literal valueをクリックします。 JSON Editorペインが表示されます。 そして、エディターで直接JSONデータを追加してください。

JSONによるデータ更新アクション

有効なJSONタイプ

JSONデータ型変数エディタは、これらの型を受け入れます:

  • 文字列: ダブルクォーテーションで囲まれている 例:  「hello there", "unusualExample": \この例はオブジェクトのように見えますが、実際にはオブジェクトに解析されなかった文字列です。
  • 数値:  整数値または10進数値 例: 0.0, 1.0, 25, -100.
  • ブーリアン: 小文字、引用符は不要。 値: はい / いいえ
  • Null : 価値のないオブジェクト。
  • アレイ: このリストには、任意の型の値(文字列、数値、Boolean、Null、Object)を含めることができます。 例:  [ ], [1,2,3], [true, "hello", {"a": true}]である。
  • オブジェクトです。 このリストには、任意の型の値 (文字列、数値、ブール値、Null、配列) を含めることができます。 ダブルクォーテーションで囲まれている 例:  {customerName": 「ジョン・ドウ"}, { }.

検討事項

  • JSON値にはNOT_SETを指定することができる。
  • JSON値にオブジェクトが含まれている場合、大文字と小文字を区別してオブジェクトのプロパティ名を検索します。
  • アーキテクトのフローやスクリプトでは、JSONデータ型の変数を作成できます。
  • オブジェクトを含むJSON値の場合、プロパティ・キーを二重引用符で囲む必要があります。
  • オブジェクトを含むJSON変数内のデータをドット記法で問い合わせることができる。 例えば、JSON変数「Flow.myJson」内のプロパティ「userName」の値に、「Flow.myJson.userName」を介して式でアクセスする。 オブジェクトの値を含む JSON 変数のプロパティにアクセスしようとし、実行時にそのプロパティがオブジェクト内に存在しない場合、アーキテクトは NOT_SET JSON 値を返します。 オブジェクトではないJSON値のプロパティにアクセスしようとすると、ランタイム・エンジンはエラー処理を開始する。

JSON式の作成

式内でJSONを使用するには、ToJson、toJsonCollection、JsonParseを使用します。

  • ToJson: 指定されたシングルトン値でJSON値を作成します。 アーキテクトが文字列値を変換すると、その文字列値を持つJSON値が返される。 文字列値をパースしたい場合は、JsonParseを使用します。
  • ToJsonCollection: 配列を含む JSON 値を JSON 値コレクションに変換します。
  • JsonParse: 指定された文字列値を、JSON解析セマンティクスによってJSONに解析します。 JSON文字列をパースするときは、キーを二重引用符で囲んでください。

入力 出力
ToJson(MakeDateTime(2022, 8, 4, 0, 0, 0)) 2022-08-04T00:00:00.000Z "という文字列を含むJSON値。
ToJson("こんにちは") 文字列 "Hello "を含むJSON値。
ToJson(5) 数字の5を含むJSON値。
ToJson("{ \"a": true }") の文字列を含むJSON値: true }". 文字列ではなくオブジェクトでJSON値を作成したい場合は、JsonParseを使用することを忘れないでください。
ToJson(MakeCurrency(5.25, "USD")) 金額 "のJSONオブジェクトを含むJSON値: 5.25、「コード」: 「米ドル"}。
ToJson(ToPhoneNumber(“tel:+13178723000”)) tel:+13178723000」の文字列を含むJSON値。

入力 出力
ToJsonCollection(JsonParse("[ true, 100 ]")) 2つのJSON値項目を持つJSONコレクション値。 最初のJSON値にはブール値trueが含まれ、2番目のJSON値には数値100が含まれる。
ToJsonCollection(MakeEmptyJsonArray()) 空のJSONコレクション値。
Count(ToJsonCollection(JsonParse("[ true, 100 ]"))) 2
Count(AddItem(ToJsonCollection(JsonParse("[ true, 100 ]")),MakeEmptyJsonObject())) 3

入力 出力
JsonParse("\"Hello") 文字列 "Hello "を含むJSON値。
JsonParse("[ 0, 1, 2 ]") 配列 [ 0, 1, 2 ] を含む JSON 値。
JsonParse("{ \"a\": 真: 100, \"c\": [本当、嘘: null }") a "のJSONオブジェクトを含むJSON値: true、"b": 100, "c": [true, false], "c": null }.
JsonParse(ToString(NOT_SET)) NOT_SET JSON値。
JsonParse("true") ブール値trueを含むJSON値。

検証

JSONリテラルエディターが無効なテキストと判断した場合、バリデーションエラーが表示されます。 場合によっては、エラーに位置情報が含まれ、どの文字で検証が失敗したかが示されます。 エラーに位置番号が含まれている場合は、メッセージをクリックするとカーソルがエラーに移動します。 JSONリテラル値がエラー中でも保存できますが、そうするとフローにバリデーションエラーが追加され、公開できなくなります。

タスクシーケンスにTime変数を追加する

次の例では、データ更新アクション に JSON 変数を追加する方法を説明します。

  1. ツールボックスから、 データ カテゴリとドラッグ データ更新 タスク内の目的の場所へのアクション。
  2. の中に  フィールドに、アイテムを説明するわかりやすい名前を追加します。
  3. クリック 更新ステートメントを追加する そして選択 ひも。
  4. の中に 変数名 フィールドに、タスクの変数を識別するためのラベルを入力します。
  5. Value To Assignフィールドで、以下のオプションから選択する。
    • リテラル・モードから値を設定するには、クリックをクリックしてJSONリテラル値を追加します。 JSONリテラルエディターが開き、フォーマットされたJSONの作成と編集ができます。 
    • 式を使用して値を設定するには、「JSONリテラル値を追加するにはクリックしてください」の横にある「Expression Modes 」をクリックし、以下の手順のいずれかを実行します。
      • インライン式を追加します。
      • Expression をクリックし、式をインラインに追加する。
  6. (オプション) 別の変数を追加するには、Add update statement をクリックします。