1

次のJSONがある場合

[ 
  { "category": "reference",
    "author": "Nigel Rees",
    "title": "Sayings of the Century",
    "price": 8.95
  },
  { "category": "fiction",
    "author": "Evelyn Waugh",
    "title": "Sword of Honour",
    "price": 12.99
  },
  { "category": "fiction",
    "author": "Herman Melville",
    "title": "Moby Dick",
    "isbn": "0-553-21311-3",
    "price": 8.99
  },
  { "category": "fiction",
    "author": "J. R. R. Tolkien",
    "title": "The Lord of the Rings",
    "isbn": "0-395-19395-8",
    "price": 22.99
  }
]

次の JSONPath を使用して、「Moby Dick」の価格を取得できます。

$..[?(@.title=='Moby Dick')].price

結果:

'0' => "8.99"

しかし、Mule でこれを行うにはどうすればよいでしょうか..... Mule 3.2 フロー内で同じ結果を得るには、json 式はどのようになりますか?

ラバ内で同じ結果が得られる限り、あなたの答えが別の方法でそれを行う方法を示していてもかまいません。

誰でもこれで私を助けてもらえますか??

4

1 に答える 1

3

MEL でこれを行う方法は、JSON ペイロードを逆シリアル化し、MVEL でフィルター処理されたプロジェクションを使用することです。

<json:json-to-object-transformer returnClass="java.util.List" />
<expression-transformer 
    expression="#[($.price in message.payload if $.title == 'Moby Dick')[0]]" />

この式は、存在しない場合を考慮しませんMoby Dick。その場合に何をすべきかについては言及していませんでした。本が見つからない場合の望ましい動作を指定すると、式を強化できます。

于 2012-12-14T17:39:58.600 に答える