詳細情報:
OmniStudio JSON オブジェクト関数
JSON オブジェクトを操作する関数。
- OmniStudio DESERIALIZE 関数
JSON 文字列を JSON オブジェクトに変換します。 - OmniStudio の RESERIALIZE 関数
以前にシリアライズされた JSON 文字列を再シリアライズします。 - OmniStudio SERIALIZE 関数
JSON オブジェクトを JSON 文字列に変換します。 - OmniStudio VALUELOOKUP 関数
JSON オブジェクト階層の任意の深度に存在するノードの値を返します。
OmniStudio DESERIALIZE 関数
JSON 文字列を JSON オブジェクトに変換します。
デシリアライゼーションは、シリアル管理された JSON 文字列をその JSON オブジェクト構造に変換します。シリアライゼーションとデシリアライゼーションにより、異なるシステムやアプリケーション間での効率的なデータ交換が促進されます。
署名
DESERIALIZE(jsonString)
戻り値
JSON オブジェクト
パラメーター
パラメーター |
データ型 |
必要性 |
説明 |
|---|---|---|---|
|
必須 |
デシリアライズされる以前にシリアライズされた JSON 文字列。 |
サンプルデータ: "SerializedContact": "{\"LastName\":\"Edison\",\"MiddleName\":\"Alva\",\"FirstName\":\"Thomas\"}"
数式: DESERIALIZE(%SerializedContact%)
戻り値:
{
"MiddleName": "Alva",
"LastName": "Edison",
"FirstName": "Thomas"
}
サンプルデータ: "SerializedContacts": "[{\"lastName\":\"Jones\",\"firstName\":\"Cathy\"},{\"lastName\":\"Smith\",\"firstName\":\"Albert\"},{\"lastName\":\"Smith\",\"firstName\":\"Ben\"}]"
数式: DESERIALIZE(%SerializedContacts%)
戻り値:
[
{
"firstName": "Cathy",
"lastName": "Jones"
},
{
"firstName": "Albert",
"lastName": "Smith"
},
{
"firstName": "Ben",
"lastName": "Smith"
}
]
OmniStudio の RESERIALIZE 関数
以前にシリアライズされた JSON 文字列を再シリアライズします。
RESERIALIZE 関数は、 DESERIALIZE(SERIALIZE()) 関数のコールに相当します。この関数は、JSON 文字列を一般的な Map<String, Object> 形式に変換します。これは、リモート アクションで Apex クラスの出力をデータ マッパーおよび Integration Procedure で受け入れられる形式に変換する場合に便利です。詳細は、「Remote Action for Integration Procedures (インテグレーション手順のリモートアクション)」を参照してください。
署名
RESERIALIZE(jsonString)
戻り値
JSON 文字列
パラメーター
パラメーター |
データ型 |
必要性 |
説明 |
|---|---|---|---|
|
JSON 文字列 |
必須 |
再シリアライズされる以前にシリアライズされた JSON 文字列。 |
サンプルデータ: "SerializedContact": "{\"LastName\":\"Edison\",\"MiddleName\":\"Alva\",\"FirstName\":\"Thomas\"}"
数式: RESERIALIZE(%SerializedContact%)
戻り値: "{\"LastName\":\"Edison\",\"MiddleName\":\"Alva\",\"FirstName\":\"Thomas\"}"
サンプルデータ: "SerializedContacts": "[{\"lastName\":\"Jones\",\"firstName\":\"Cathy\"},{\"lastName\":\"Smith\",\"firstName\":\"Albert\"},{\"lastName\":\"Smith\",\"firstName\":\"Ben\"}]"
数式: DESERIALIZE(%SerializedContacts%)
戻り値: "[{\"lastName\":\"Jones\",\"firstName\":\"Cathy\"},{\"lastName\":\"Smith\",\"firstName\":\"Albert\"},{\"lastName\":\"Smith\",\"firstName\":\"Ben\"}]"
OmniStudio SERIALIZE 関数
JSON オブジェクトを JSON 文字列に変換します。
逐次化では、JSON オブジェクトが JSON 文字列に変換され、簡単に保存、送信、元のオブジェクト構造への復元ができます。シリアライゼーションとデシリアライゼーションにより、異なるシステムやアプリケーション間での効率的なデータ交換が促進されます。(SERIALIZE 関数の結果は、 TOSTRING 関数の結果とは異なります) 。
署名
SERIALIZE(jsonObject)
戻り値
JSON 文字列
パラメーター
パラメーター |
データ型 |
必要性 |
説明 |
|---|---|---|---|
|
JSON オブジェクト |
必須 |
シリアライズされる JSON オブジェクト。JSON 配列を渡すには、 |
サンプルデータ:
"Contact": {
"FirstName": "Thomas",
"MiddleName": "Alva",
"LastName": "Edison"
}
数式: SERIALIZE(%Contact%)
戻り値: "{\"LastName\":\"Edison\",\"MiddleName\":\"Alva\",\"FirstName\":\"Thomas\"}"
サンプルデータ:
"Contacts": [
{
"lastName": "Jones",
"firstName": "Cathy"
},
{
"lastName": "Smith",
"firstName": "Albert"
},
{
"lastName": "Smith",
"firstName": "Ben"
}
]
数式: SERIALIZE(LIST(%Contacts%))
戻り値: "[{\"lastName\":\"Jones\",\"firstName\":\"Cathy\"},{\"lastName\":\"Smith\",\"firstName\":\"Albert\"},{\"lastName\":\"Smith\",\"firstName\":\"Ben\"}]"
OmniStudio VALUELOOKUP 関数
JSON オブジェクト階層の任意の深度に存在するノードの値を返します。
この関数は、別の JSON ノードが参照する JSON ノードの値を返します。この関数を使用すると、指定したノードを動的に取得できます。
署名
VALUELOOKUP(startNode, node...)
戻り値
文字列
パラメーター
パラメーター |
データ型 |
必要性 |
説明 |
|---|---|---|---|
|
JSON ノード |
必須 |
JSON オブジェクトのノードまたはノードパス。ノードまたはノードパスは、値を返す JSON オブジェクトのルートで始まる必要があります。たとえば、 |
|
JSON ノード |
必須 |
JSON オブジェクトの 1 つ以上のノードのカンマ区切りリスト。各ノードは、以前に指定したノードの直接の子であるか、そのノードの子を参照する必要があります。最終ノードは、値を返すノードを識別する必要があります。 |
サンプルデータ:
"Contact": {
"Name": {
"FirstName": "Thomas",
"MiddleName": "Alva",
"LastName": "Edison"
},
"Address": {
"City": "San Francisco",
"State": "CA",
"ZipCode": 94110
}
},
"GetNameGroup": "Name",
"GetLastNameField": "LastName",
"GetAddressGroup": "Address",
"GetStateField": "State"
数式: VALUELOOKUP(Contact, GetNameGroup, GetLastNameField)
数式: VALUELOOKUP(Contact:Name, GetLastNameField)
戻り値: "Edison"
数式: VALUELOOKUP(Contact, GetNameGroup)
戻り値:
{
"MiddleName": "Alva",
"LastName": "Edison",
"FirstName": "Thomas"
}
数式: VALUELOOKUP(Contact, GetAddressGroup, GetStateField)
数式: VALUELOOKUP(Contact:Address, GetStateField)
戻り値: "CA"
数式: VALUELOOKUP(Contact, GetAddressGroup)
戻り値:
{
"City": "San Francisco",
"ZipCode": 94110,
"State": "CA"
}
サンプルデータ:
"AccountList": [
{
"CaseList": [
{
"Case1": {
"CreatedDate": "2/1/2024T16:35:30 GMT -0500 (EDT)",
"LastUpdate": "2/8/2024T09:15:00 GMT -0500 (EDT)",
"NextCase": "Case2"
}
},
{
"Case2": {
"CreatedDate": "2/2/2025T11:05:05 GMT -0500 (EDT)",
"LastUpdate": "2/3/2025T15:50:57 GMT -0500 (EDT)",
"NextCase": "Case3"
}
},
{
"Case3": {
"CreatedDate": "2/4/2025T11:05:05 GMT -0500 (EDT)",
"LastUpdate": "2/6/2025T15:50:57 GMT -0500 (EDT)",
"NextCase": null
}
}
]
}
],
"GetFirstCase": "Case1",
"GetNextCase": "NextCase"
数式: IF(GetFirstCase, GetFirstCase, "Empty list")
戻り値: "Case1"
数式: VALUELOOKUP(AccountList:CaseList:Case1, GetNextCase)
戻り値: "Case2"
数式: VALUELOOKUP(AccountList:CaseList:Case2, GetNextCase)
戻り値: "Case3"
数式:
IF(VALUELOOKUP(AccountList:CaseList:Case3, GetNextCase),
VALUELOOKUP(AccountList:CaseList:Case3, GetNextCase),
"End of list")戻り値: "End of list"
