read

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>

Was this article helpful?

💙 Thanks for your feedback!