read

DataWeave 2.2 は Mule 4.2 と互換性があり、Mule 4.2 にバンドルされています。 このバージョンの Mule は、拡張サポートが終了する 2023 年 5 月 2 日にその すべてのサポート​が終了しました。

このバージョンの Mule を使用する CloudHub には新しいアプリケーションをデプロイできなくなります。許可されるのはアプリケーションへのインプレース更新のみになります。

標準サポートが適用されている最新バージョンの Mule 4 にアップグレード​することをお勧めします。これにより、最新の修正とセキュリティ機能強化を備えたアプリケーションが実行されます。

read(String | Binary, String, Object): Any

文字列またはバイナリを読み取り、解析後のコンテンツを返します。

この関数は、リーダーのデフォルトではコンテンツタイプを判別できない場合などに役立ちます。

パラメーター

名前 説明

stringToParse

読み取る文字列またはバイナリ。

contentType

サポートされる形式 (またはコンテンツタイプ)。デフォルト: application/dw​。

readerProperties

(省略可能) リーダー設定プロパティを定義します。他の形式およびリーダー設定プロパティについては、 「DataWeave の出力形式とライタープロパティ」​を参照してください。

次の例では、JSON オブジェクト ​{ "hello" : "world" }'​ を読み取り、​"application/json"​ 引数を使用して​入力​コンテンツタイプを示します。対照的に、スクリプトのヘッダーの ​output application/xml​ ディレクティブでは、JSON コンテンツを XML 出力に変換するようにスクリプトに指示しています。XML 出力では、​hello​ がルート XML 要素として使用され、​world​ がその要素の値として使用されています。XML の ​hello​ は JSON オブジェクトのキー ​"hello"​ に対応し、​world​ は JSON 値 ​"world"​ に対応します。

ソース

%dw 2.0
output application/xml
---
read('{ "hello" : "world" }','application/json')

出力

<?xml version='1.0' encoding='UTF-8'?><hello>world</hello>

次の例では、文字列をヘッダーなしの CSV 形式として読み取り、JSON に変換します。列名がキーとして出力オブジェクトに追加されています。また、ここでは ​[0]​を関数コールに付加し、結果の配列の最初のインデックスを選択しているため、結果は配列内に生成されません (出力オブジェクト全体が角括弧で囲まれています)。

ソース

%dw 2.0
var myVar = "Some, Body"
output application/json
---
read(myVar,"application/csv",{header:false})[0]

出力

{ "column_0": "Some", "column_1": " Body" }

次の例では、指定された XML を読み取り、リーダープロパティの構文 (この場合は ​{ indexedReader: "false" }​) を示しています。

ソース

%dw 2.0
output application/xml
---
{
   "XML" : read("<prices><basic>9.99</basic></prices>",
                "application/xml",
                { indexedReader: "false" })."prices"
}

出力

<?xml version='1.0' encoding='UTF-8'?>
<XML>
  <basic>9.99</basic>
</XML>