4

データベースから値を取得する JDBC コネクタがあり、それらをオブジェクトから JSON にマップしました。ここで、json からフロー変数に特定の値を抽出したいと考えています。#[message.payload] をログに記録しようとすると、JSON 形式のログに完全なペイロードが表示されます。ただし、属性 (例: json の testattribute) #[message.payload.testattribute] を選択しようとすると、ミュール式エラーが発生します。json 値を参照するにはどうすればよいですか?

4

4 に答える 4

2

Mule には、JSON 要素を取得するために使用できる JSON-to-Object トランスフォーマーがあります。たとえば、JSON が次の場合:-

{
  "token" : 123,
  "id" : 456,
  "email" : "abc@abc.com",
  "status" : "Success"
}

ここで、要素を抽出するには、次を使用する必要があります:-

<json:json-to-object-transformer returnClass="java.lang.Object" doc:name="JSON to Object" />

そして、次のように抽出できます:-#[message.payload.email]または#[message.payload.status]

于 2015-07-21T04:01:05.710 に答える
1

次のようにコンポーネントを使用します

  1. オブジェクト - 文字列
  2. オブジェクト - JSON

次に、json 式を#{json:email}として使用して値を使用して直接抽出できます。以下の xml では、変数コンポーネントを使用して、使いやすさのために「var1」フロー変数に #{json:email} を設定しました。

注: json 式は、5.x のスタジオ バージョンでも使用できます。

 <object-to-string-transformer doc:name="Object to String"/>
 <json:object-to-json-transformer doc:name="Object to JSON"/>
 <set-variable variableName="var1" value="#[json:email]" doc:name="Variable"/>
于 2015-12-24T09:46:26.647 に答える