---
schema_version: "1"
id: e0d9052a96bb6aad8b49d0e6fbd5e0012f581ac9a0ccdcf7855d41d72f7d261b
title: DataWeave クイックスタート
collection: mulesoft
version: current
locale: ja-jp
portal_url: https://docs.salesforce.com/mulesoft/current/ja-jp/dataweave/2.3/dataweave-quickstart.md
canonical_url: https://docs.mulesoft.com/jp/dataweave/2.3/dataweave-quickstart
source_site: docs.mulesoft.com
content_type: documentation
content_hash: c913a13f48ba46632dcbde11628a231b76076c159b93fad522a57c7690362db1
description: MuleSoft Documentation Site
release: "2.3"
latest: false
---
# DataWeave クイックスタート

このガイドでは、サンプルデータに対して DataWeave バージョン 2 スクリプトを実行します。外部データソースは使用しません。 開始する前に、DataWeave バージョン 2 は Mule 4 アプリケーションを対象とすることに注意してください。Mule 3 アプリケーションの場合、Mule 3.9 ドキュメントの ​[DataWeave バージョン 1 ドキュメントセット](#1.2@index.adoc)​を参照してください。他の Mule バージョンの場合は、Mule Runtime の目次のバージョンセレクターを使用できます。

例を使用して、いくつかの重要な DataWeave の概念について説明します。ユーザーは準備が整ったときにこの概念をさらに深く探索することができます。また、これらの例は、Transform Message コンポーネントを DataWeave プレイグラウンドに変換する方法も示しています。

スクリプトを実行するには、スクリプトを ​[Studio](https://docs.mulesoft.com/studio/)​ の Transform Message コンポーネントのソースコード領域にコピーします。その後、結果をコンポーネントの ​**\[Preview (プレビュー)\]**​ ペインで参照します。また、ファイルからコンテンツを読み込んで、DataWeave スクリプトがそのコンテンツに対してアクションを実行できるようにします。ここにある DataWeave の例やドキュメントの他の場所にある例に慣れたら、DataWeave プレイグラウンドを使用して、サンプルデータに対して独自の DataWeave スクリプトを記述する練習をすることができます。

![基本的な JSON 出力が表示されている Anypoint Studio のスクリプト](/mulesoft/current/ja-jp/dataweave/2.3/_images/dw-tut-script-studio-basic.png)

この図は、センターキャンバスの ​**testingscriptFlow**​ 内の Transform Message コンポーネントを示しています。Studio キャンバスの下の ​**\[Transform Message\]**​ タブでは、ソースコード領域に DataWeave スクリプトが表示され、​**\[Preview (プレビュー)\]**​ ペインに結果が表示されます。

## [](#前提条件)前提条件

[Studio 7](https://docs.mulesoft.com/studio/to-download-and-install-studio)​ が必要です。 バージョン 7.3 または 7.2.3 をお勧めします。このガイドでは他の Studio 7 バージョンはテストされていません。

Studio をインストールしたら、Transform Message コンポーネントを使用してプロジェクトをセットアップする必要があります。​[Studio でのプロジェクトのセットアップ](#setup)​を参照してください。

## [](#setup)Studio でのプロジェクトのセットアップ

DataWeave プレイグラウンドとして機能する Mule プロジェクトをセットアップします。

1. Studio で、​**\[File (ファイル)\]**​ → ​**\[New (新規)\]**​ → ​**\[Mule Project (Mule プロジェクト)\]**​ をクリックして、Mule プロジェクトを作成します。
2. プロジェクトの名前 ​`testscript`​ を入力して、​**\[Finish (完了)\]**​ をクリックします。
3. 新しいプロジェクトの ​**\[Mule Palette (Mule パレット)\]**​ タブから ​**\[Core (コア)\]**​ をクリックし、​**\[Transform Message\]**​ コンポーネントを Studio キャンバスにドラッグします。
    
    ![Anypoint Studio の Transform Message コンポーネント](/mulesoft/current/ja-jp/dataweave/2.3/_images/dw-tut-script-studio.png)
    
    (A) ​**\[Mule Palette (Mule パレット)\]**​ タブ
    
    (B) Transform Message コンポーネントを含む Studio キャンバス
    
    (C) ​**\[Transform Message\]**​ タブ
4. **\[Transform Message\]**​ タブで ​**\[Preview (プレビュー)\]**​ (右端) をクリックして \[Preview (プレビュー)\] ペインを開き、​**\[Preview (プレビュー)\]**​ の横にある​_空_​の長方形をクリックしてソースコード領域を展開します。
    
    ![Anypoint Studio の出力ペイロードが表示されている \[Transform Message\] タブ](_images/studio-transform-msg-tab.png)
    
    左のソースコード領域で DataWeave スクリプトを追加し、右の \[Preview (プレビュー)\] ペインでスクリプトの出力を参照します。
5. [スクリプティングの開始](#start_scripting)​に進みます。

## [](#start_scripting)スクリプティングの開始

1. [1 つの文字列への 2 つの文字列の連結](#step_1)
2. [XML 出力への JSON 入力の変換](#step_2)
3. [サポートされるデータ型について](#step_3)
4. [入力としての DataWeave 変数の定義および使用](#step_4)
5. [DataWeave 変数での DataWeave 関数の使用](#step_5)
6. [入力からのコンテンツの読み取り、変換、選択](#step_6)
7. [DataWeave 関数を使用したファイルのコンテンツの読み取り](#step_7)
8. [配列からオブジェクトへの要素のマップ](#step_8)
9. [オブジェクトから配列への値の取り込み](#step_9)
10. [項目のマップとマージ](#step_10)

### [](#step_1)1 つの文字列への 2 つの文字列の連結

2 つの文字列 (「hello」と「World」) を 1 つの文字列 (「helloWorld」) に連結する簡単な DataWeave スクリプトから始めます。

![JSON 形式で「helloWorld」を出力する DataWeave スクリプト](/mulesoft/current/ja-jp/dataweave/2.3/_images/dw-tut-helloWorld.png)

1. **\[Transform Message\]**​ タブのソースコード領域内の現在のスクリプトを次のスクリプトに置き換えます。
    
    ```dw
    %dw 2.0
    output application/json
    ---
    { myString: ("hello" ++ "World") }
    ```
    
    - DataWeave スクリプトの本文にはキー-値ペア (​`{ myString: ("hello" ++ "World") }`​) が含まれます。この入力オブジェクトの値は、文字列「hello」と「World」を 1 つの文字列「helloWorld」に連結するための DataWeave 式 (​`("hello" ++ "World")`​) です。
        
        準備が整ったら、文字列の連結で使用する DataWeave ​[++](https://docs.mulesoft.com/jp/dataweave/2.3/dw-core-functions-plusplus)​ 関数についての詳細を確認してください。
    - 3 つのダッシュ (​`---`​) の上にあるすべてのコンテンツがスクリプトのヘッダーです。 これには、出力形式 ​`application/json`​ を指定するディレクティブを含め、重要なディレクティブが含まれます。準備が整ったら、​[DataWeave スクリプト](https://docs.mulesoft.com/jp/dataweave/2.3/dataweave-language-introduction)​についての詳細を確認してください。
2. **\[Preview (プレビュー)\]**​ ペインで JSON 出力を参照します。
    
    ```json
    { "myString": "helloWorld" }
    ```
3. [XML 出力への JSON 入力の変換](#step_2)​に進みます。

### [](#step_2)XML 出力への JSON 入力の変換

多くのインテグレーションで形式間の変換が必要とされます。この手順では、​`output`​ ディレクティブを使用して、JSON 入力から XML 出力を生成します。

![XML 形式で「helloWorld」を出力する DataWeave スクリプト](/mulesoft/current/ja-jp/dataweave/2.3/_images/dw-tut-helloWorld-xml.png)

1. ソースコード領域内の現在のスクリプトの本文を​[1 つの文字列への 2 つの文字列の連結](#step_1)​の JSON 出力に置き換えて、​`output application/json`​ ディレクティブを ​`output application/xml`​ に変更します。
    
    ```dw
    %dw 2.0
    output application/xml
    ---
    { "myString" : ("helloWorld") }
    ```
2. **\[Preview (プレビュー)\]**​ ペインで XML 出力を参照します。
    
    ```xml
    <?xml version='1.0' encoding='UTF-8'?>
    <myString>helloWorld</myString>
    ```
    
    入力 JSON オブジェクト ​`{ "myString" : ("helloWorld") }`​ の ​`"myString"`​ キーは XML 出力のルート要素に変換され、連結された文字列はその XML オブジェクトの値になります。したがって、XML 出力は ​`<myString>helloWorld</myString>`​ になります。この出力の前に、XML バージョンとエンコードを特定する標準 XML 宣言が配置されています。
    
    <table><tbody><tr><td class="icon"><i class="fa icon-note" title="Note"></i></td><td class="content">XML 出力のルートノードとして機能する​<em>単一</em>​キーがない場合 (たとえば、入力が単に ​<code>("helloWorld")</code>​ の場合)、XML への変換は失敗し、ソースコード領域に黄色の警告 (​<strong>!</strong>​) が表示されます。警告メッセージは、​<code>Trying to output non-whitespace characters outside main element tree</code>​ です。必要に応じて、この警告が生成されるように自分で試してみることができます。</td></tr></tbody></table>
    
    DataWeave では、多くの出力形式と入力形式がサポートされます。準備が整ったら、​[サポートされるデータ形式](https://docs.mulesoft.com/jp/dataweave/2.3/dataweave-formats)​についての詳細を確認してください。
3. [サポートされるデータ型について](#step_3)​に進みます。

### [](#step_3)サポートされるデータ型について

ここでは、サポートされるさまざまなデータ型を紹介し、スクリプトへのコメントの追加方法を示す簡単な DataWeave スクリプトを提供します。

1. **\[Transform Message\]**​ タブのソースコード領域内の現在のスクリプトを次のスクリプトに置き換えます。
    
    ```dw
    %dw 2.0
    output application/json
    ---
    {
      /*
       * A multi-line
       * comment here.
       */
      myString: "hello world",
      myNumber: 123,
      myFloatingPointNumber: 123.456,
      myVeryBigNumber: 12341234134123412341234123,
      myDate: |2018-12-07|,
      myTime: |11:55:56|,
      myDateTime: |2018-10-01T23:57:59-03:00|,
      myBoolean: true,
      myArray: [ 1, 2, 3, 5, 8],
      myMixedArray: [ 1, 2, "blah", { hello: "there" } ],
      myObjectKeyValuePair: { innerKey: "innerValue" },
      myObjectWithConditionalField: { a : { b : 1, ( c : 2 ) if true, (d : 4) if false } },
      myNull: null,
      myBinary: "abcd1234123" as Binary
      //A one-line comment here.
    }
    ```
    
    DataWeave では、​`/* */`​ マークアップ内の複数行のコメントと、スラッシュ (​`//`​) の後の単一行のコメントがサポートされます。また、キー-値ペア (​`myString: "hello world"`​、​`myNumber: 123`​ など) 内のコロン (​`:`​) の後に表示される多くのデータ型もサポートされます。この型には、文字列 (引用符 ​`""`​ で囲まれる)、数値、日時構造 (パイプ ​`||`​ 内)、ブール (​`true`​ と ​`false`​)、配列 (角括弧 ​`[]`​ 内)、JSON に似たオブジェクト (中括弧 ​`{}`​ 内のキー-値構造)、​`null`​、バイナリがあります。このトピックについての詳細を確認する準備が整ったら、​[「DataWeave の型」](https://docs.mulesoft.com/jp/dataweave/2.3/dataweave-types)​を参照してください。
2. **\[Preview (プレビュー)\]**​ ペインで JSON 出力を参照します。
    
    ```json
    {
      "myString": "hello world",
      "myNumber": 123,
      "myFloatingPointNumber": 123.456,
      "myVeryBigNumber": 12341234134123412341234123,
      "myDate": "2018-12-07",
      "myTime": "11:55:56",
      "myDateTime": "2018-10-01T23:57:59-03:00",
      "myBoolean": true,
      "myArray": [ 1, 2, 3, 5, 8 ],
      "myMixedArray": [ 1, 2, "blah", { "hello": "there" } ],
      "myObjectKeyValuePair": { "innerKey": "innerValue" },
      "myObjectWithConditionalField": { "a": { "b": 1, "c": 2 } },
      "myNull": null,
      "myBinary": "abcd1234123"
    }
    ```
3. [入力としての DataWeave 変数の定義および使用](#step_4)​に進みます。

### [](#step_4)入力としての DataWeave 変数の定義および使用

ここでは、DataWeave 変数 ​`myJson`​ の値を出力する簡単な DataWeave スクリプトを試します。スクリプトのヘッダー内の ​`var`​ ディレクトリを使用して、変数を設定します。

1. **\[Transform Message\]**​ タブのソースコード領域内の現在のスクリプトを次のスクリプトに置き換えます。
    
    ```dw
    %dw 2.0
    var myJson = { "hello" : "world" }
    output application/json
    ---
    myJson
    ```
    
    JSON オブジェクト (​`{ "hello" : "world" }`​) は、スクリプトのヘッダー内の ​`myJson`​ 変数として定義されます。準備が整ったら、​[DataWeave 変数](https://docs.mulesoft.com/jp/dataweave/2.3/dataweave-variables)​についての詳細を確認してください。
2. **\[Preview (プレビュー)\]**​ ペインで出力を参照します。
    
    ```json
    {
      "hello": "world"
    }
    ```
3. [DataWeave 変数での DataWeave 関数の使用](#step_5)​に進みます。

### [](#step_5)DataWeave 変数での DataWeave 関数の使用

ここでは、DataWeave 変数 (​`myJson`​) 内で DataWeave ​`avg`​ 関数を使用して、2 つの数値セットの平均を取得するスクリプトを試します。

![Anypoint Studio で変数を使用する DataWeave スクリプト](/mulesoft/current/ja-jp/dataweave/2.3/_images/dw-tut-script-studio-var.png)

1. ソースコード領域内の現在のスクリプトを次のスクリプトに置き換えます。
    
    ```dw
    %dw 2.0
    var myJson = {
      a: avg([1, 1000]),
      b: avg([1, 2, 3])
    }
    output application/json
    ---
    myJson
    ```
    
    スクリプトの本文に ​`myJson`​ を追加すると、ここの ​`avg`​ 関数が呼び出され、計算された平均が JSON オブジェクト内に生成されます。これは、​**\[Preview (プレビュー)\]**​ ペインで参照できます。構造 ​`[1, 1000]`​ および ​`[1, 2, 3]`​ は​[配列](https://docs.mulesoft.com/jp/dataweave/2.3/dataweave-types#dw_type_array)​です。準備が整ったら、​[avg](https://docs.mulesoft.com/jp/dataweave/2.3/dw-core-functions-avg)​ についての詳細を確認してください。
2. 出力をプレビューします。
    
    ```json
    {
      "a": 500.5,
      "b": 2.0
    }
    ```
3. [入力からのコンテンツの読み取り、変換、選択](#step_6)​に進みます。

### [](#step_6)入力からのコンテンツの読み取り、変換、選択

ここでは、XML 入力を読み取って JSON に変換し、​`car`​ 要素のコンテンツのみを選択する、より複雑なスクリプトを試します。

1. ソースコード領域内の現在のスクリプトを次のスクリプトに置き換えます。
    
    ```dw
    %dw 2.0
    var myRead = read("<car><color>red</color></car>",
                    "application/xml")
    output application/json
    ---
    {
      mySelection : myRead.car
    }
    ```
    
    この例のプレビューで問題が発生した場合は、​`myRead.car`​ を ​`myRead."car"`​ に変更してください。準備が整ったら、​[read](https://docs.mulesoft.com/jp/dataweave/2.3/dw-core-functions-read)​ 関数、​[サポートされるデータ形式](https://docs.mulesoft.com/jp/dataweave/2.3/dataweave-formats)​、​[DataWeave セレクター](https://docs.mulesoft.com/jp/dataweave/2.3/dataweave-selectors)​についての詳細を確認してください。
2. 出力をプレビューします。
    
    ```json
    {
      "mySelection": {
        "color": "red"
      }
    }
    ```
3. [DataWeave 関数を使用したファイルのコンテンツの読み取り](#step_7)​に進みます。

### [](#step_7)DataWeave 関数を使用したファイルのコンテンツの読み取り

ここでは、​`readUrl`​ を使用して、Studio の ​`src/main/resources`​ フォルダー内のファイルのコンテンツを読み取ります。このコンテンツを DataWeave スクリプトのサンプルデータとして使用できます。

1. ファイルを追加するには、​**\[Package Explorer\]**​ タブで ​`src/main/resources`​ フォルダーを右クリックし、​**\[New (新規)\]**​ → ​**\[File (ファイル)\]**​ に移動して、該当のファイルのファイル名 ​`myJson.json`​ を入力し、​**\[Finish (完了)\]**​ をクリックします。
2. `src/main/resources`​ から、​**\[myJson.json\]**​ タブ (または ​**\[myJson.json\]**​ タブの ​**\[Source (ソース)\]**​ サブタブ内 (ある場合)) に次のサンプルコンテンツを入力して保存します。
    
    ```json
    {
      "hello": "world"
    }
    ```
    
    ![Anypoint Studio のサンプルコンテンツが表示されている \[Package Explorer\] タブ](_images/dw-tut-sample-file.png)
    
    Figure 1. Studio 内の myJson.json
3. **\[testscript\]**​ タブ内の Transform Message コンポーネントに戻り、現在のスクリプトを、​`readUrl`​ を使用してファイルから JSON コンテンツを読み取るスクリプトに置き換えます。
    
    ```dw
    %dw 2.0
    output application/json
    ---
    readUrl("classpath://myJson.json", "application/json")
    ```
    
    準備が整ったら、​[readUrl](https://docs.mulesoft.com/jp/dataweave/2.3/dw-core-functions-readurl)​ 関数についての詳細を確認してください。
4. **\[Preview (プレビュー)\]**​ ペインで一致の出力を参照します。
    
    ```json
    {
      "hello": "world"
    }
    ```
    
    Transform Message コンポーネントのメタデータ型を介してファイルのコンテンツを読み込むこともできます。この手順については、後で​[長いペイロードを使用する例の実行](#med_large_payload)​で説明します。この手順では、ここで作成した ​`myJson.json`​ ファイルを使用します。
5. [配列からオブジェクトへの要素のマップ](#step_8)​に進みます。

### [](#step_8)配列からオブジェクトへの要素のマップ

ほぼすべてのインテグレーションでデータマッピングが必要とされます。ここでは、配列内の要素を JSON オブジェクトのキーと値にマップします。

1. ソースコード領域内の現在のスクリプトを次のスクリプトに置き換えます。
    
    ```dw
    %dw 2.0
    output application/json
    ---
    {
      (
        ["a", "b", "c"] map ((value, index) -> {
            (index): value
        })
      )
    }
    ```
    
    `map`​ 関数は左の配列を反復処理し、右のラムダ (匿名関数) (​`((value, index) → { (index): value })`​) をその配列の要素に適用します。ラムダは​[名前付きパラメーター](https://docs.mulesoft.com/jp/dataweave/2.3/dataweave-functions-lambdas#_use_named_parameters_in_a_lambda)​ (​`value`​ および ​`index`​) を使用して、配列から値とインデックスを選択し、JSON オブジェクトにキー-値ペアを入力します。​[map](https://docs.mulesoft.com/jp/dataweave/2.3/dw-core-functions-map)​ についての詳細を確認し、準備が整ったら、​`map`​ を ​[mapObject](https://docs.mulesoft.com/jp/dataweave/2.3/dw-core-functions-mapobject)​ と比較してください。これはオブジェクトを入力として使用します。
2. 出力をプレビューします。
    
    ```json
    {
      "0": "a",
      "1": "b",
      "2": "c"
    }
    ```
3. [オブジェクトから配列への値の取り込み](#step_9)​に進みます。

### [](#step_9)オブジェクトから配列への値の取り込み

ここでは、DataWeave ​`pluck`​ 関数を使用して JSON オブジェクトの値を反復処理し、値を配列に出力します。

1. ソースコード領域のコンテンツを、JSON オブジェクトで ​`pluck`​ を使用するスクリプトに置き換えます。
    
    ```dw
    %dw 2.0
    output application/json
    ---
    {
      "0": "a",
      "1": "b",
      "2": "c"
    } pluck ((value) -> value)
    ```
    
    入力オブジェクトが ​`map`​ の例の​[出力](#output_map)​に一致し、出力の配列が ​`map`​ の例の​[入力](#input_map)​に一致します。準備が整ったら、​[pluck](https://docs.mulesoft.com/jp/dataweave/2.3/dw-core-functions-pluck)​ についての詳細を確認してください。
2. 出力をプレビューします。
    
    ```json
    [
      "a",
      "b",
      "c"
    ]
    ```
3. [項目のマップとマージ](#step_10)​に進みます。

### [](#step_10)項目のマップとマージ

ここでは、別々の配列内のアイテムから項目をマップおよびマージする、より複雑な例を試します。ここでの重要な点を簡単に述べると、一部のインテグレーションで必要とされる、より複雑なマッピングと変換の処理に DataWeave 機能の味わいを提供していることです。

1. ソースコード領域内の現在のスクリプトを次のスクリプトに置き換えます。
    
    ```dw
    %dw 2.0
    var myVar = [
      { bookId: 101,
        title: "world history",
        price: "19.99"
      },
      {
        bookId: 202,
        title: 'the great outdoors',
        price: "15.99"
      }
    ]
    var myVar2 = [
      {
        bookId: 101,
        author: "john doe"
      },
      {
        bookId: 202,
        author: "jane doe"
      }
    ]
    output application/json
    ---
    myVar map (item, index) -> using (id = item.bookId) {
    	"id" : id,
    	"topic" : item.title,
    	"cost" : item.price as Number,
    	(myVar2 filter ($.*bookId contains id) map (item) -> {
    		author : item.author
    	})
    }
    ```
    
    この言語をさらに探索する準備が整ったら、終了間近で使用する ​[filter](https://docs.mulesoft.com/jp/dataweave/2.3/dw-core-functions-filter)​ 関数が ​`myVar2`​ 変数の配列から ​`author`​ 値をどのように返すかについて確認してください。​`as`​ が行 ​`"cost" : item.price as Number,`​ 内のデータ型と連携し、​`"19.99"`​ のような入力文字列を ​`19.99`​ のような数値に強制的に変換する方法についての詳細は、​[DataWeave の型強制](https://docs.mulesoft.com/jp/dataweave/2.3/dataweave-types-coercion)​について確認してください。(​`using (id = item.bookId)`​ に示されている) ​`using`​ を使用してスクリプト内で​[ローカル DataWeave 変数](https://docs.mulesoft.com/jp/dataweave/2.3/dataweave-variables#example_local_variable)​をどのように作成できるかを確認してください。
2. 出力をプレビューします。
    
    ```json
    [
      {
        "id": "101",
        "topic": "world history",
        "cost": 19.99,
        "author": "john doe"
      },
      {
        "id": "202",
        "topic": "the great outdoors",
        "cost": 15.99,
        "author": "jane doe"
      }
    ]
    ```
3. [DataWeave の他の例を試す](#more_examples)​に進みます。

## [](#more_examples)DataWeave の他の例を試す

これで DataWeave の例を自分で実行する準備ができました。DataWeave 言語についてさらに多くのことを知りたい場合は、DataWeave プレイグラウンドでドキュメント内にある例をいつでも実行できます。例をカスタマイズし、それを使用して独自のスクリプトを開始できます。

<table><tbody><tr><td class="icon"><i class="fa icon-note" title="Note"></i></td><td class="content"><code>payload</code>​ を使用して入力データを参照する例 (​<a href="https://docs.mulesoft.com/jp/dataweave/2.3/dw-core-functions-contains#contains1" class="xref page">contains</a>​ や ​<a href="https://docs.mulesoft.com/jp/dataweave/2.3/dw-core-functions-mapobject" class="xref page">mapObject</a>​ 関数の例など) の場合、​<a href="#provide_payload">ペイロードに対してアクションを実行する例の実行</a>​で説明されている技法を使用してペイロード関連の問題を回避できます。</td></tr></tbody></table>

1. Studio で試すことができるさらに多くの例があります。
    
    - [DataWeave の演算子](https://docs.mulesoft.com/jp/dataweave/2.3/dw-operators)
    - [DataWeave リファレンス](https://docs.mulesoft.com/jp/dataweave/2.3/dw-functions)​: DataWeave 関数モジュールに関するドキュメントには、DataWeave 関数を使用する多くの例が用意されています。
    - [DataWeave のフローコントロール](https://docs.mulesoft.com/jp/dataweave/2.3/dataweave-flow-control)
    - [DataWeave のパターン一致](https://docs.mulesoft.com/jp/dataweave/2.3/dataweave-pattern-matching)
    - [DataWeave の解説書](https://docs.mulesoft.com/jp/dataweave/2.3/dataweave-cookbook)
    - [DataWeave 関数の定義](https://docs.mulesoft.com/jp/dataweave/2.3/dataweave-functions)
2. [次のステップ](#next_steps)​に進みます。

### [](#provide_payload)ペイロードに対してアクションを実行する例の実行

DataWeave では、​`payload`​ は、​[Mule メッセージ](https://docs.mulesoft.com/jp/mule-runtime/4.3/about-mule-message#_message_payload)​のコンテンツを保持する組み込み Mule Runtime 変数です。これを使用すると、​`payload`​ を DataWeave スクリプトに入力するだけでメッセージの本文を取得できます。多くの場合、このコンテンツはドキュメントで「ペイロード」と呼ばれます。

`payload`​ を使用して Mule メッセージのコンテンツを取得する DataWeave の例を試すには、いくつかのオプションがあります。

- [短いペイロードを使用する例の実行](#small_payload)​: DataWeave 変数を使用できます。
- [長いペイロードを使用する例の実行](#med_large_payload)​: ファイルを介してペイロードコンテンツを追加します。この技法は、短いペイロードでも機能します。

実行中の Mule アプリケーションを必要とする選択肢 (​[Set Payload](https://docs.mulesoft.com/jp/mule-runtime/4.3/set-payload-transformer-reference)​ の使用など) は、ここでは対象になっていませんが、​[次のステップ](#next_steps)​で紹介されています。

#### [](#small_payload)短いペイロードを使用する例の実行

数行のサンプルデータを使用する短い例では、入力ペイロードを変数に変換できます。DataWeave スクリプトのヘッダー内の DataWeave 変数 (​`var`​) にペイロードのコンテンツをコピーするだけです。次にスクリプトの本文で、その変数を参照する新しい変数の名前で ​`payload`​ を置き換えます。

1. ソースコード領域で次のスクリプトから開始します。
    
    ```DataWeave
    %dw 2.0
    output application/json
    ---
    ContainsRequestedItem: payload.root.*order.*items contains "3"
    ```
    
    これをまだプレビューすることはできません。
    
    ![Anypoint Studio でペイロードに特定の項目が含まれているかどうかを確認する DataWeave スクリプト](/mulesoft/current/ja-jp/dataweave/2.3/_images/dw-tut-payload-example.png)
2. ここでは、​`payload`​ を使用して、存在しない Mule メッセージのコンテンツを入力するのではなく、何らかのサンプル入力を使用するようにこの例を変更します。
    
    1. スクリプトで読み取ることができる入力データを提供する ​`myInput`​ DataWeave 変数を追加し、スクリプトの本文内の Mule ​`payload`​ 変数を DataWeave ​`myInput`​ 変数に変更します。
        
        ```DataWeave
        %dw 2.0
        var myInput = read("<root>
            <order>
              <items>1</items>
              <items>3</items>
            </order>
            <order>
              <items>2</items>
            </order>
        </root>",
        "application/xml")
        output application/json
        ---
        ContainsRequestedItem: myInput.root.*order.*items contains "3"
        ```
    2. 結果をプレビューします。
        
        ```json
        {
          "ContainsRequestedItem": true
        }
        ```
        
        準備が整ったら、​[contains](https://docs.mulesoft.com/jp/dataweave/2.3/dw-core-functions-contains)​ 関数および組み込み ​`payload`​ 変数に関する詳細を​[「定義済み変数」](https://docs.mulesoft.com/jp/dataweave/2.3/dataweave-variables-context)​で確認してください。

#### [](#med_large_payload)長いペイロードを使用する例の実行

多数の行があるサンプルデータを使用する DataWeave 例では、Transform Message を介してメタデータ型を作成することを考慮します。メタデータ型は、サンプルデータを含むローカルファイルを受け入れることができます。

1. [readUrl](#readurl_ex)​ の例を使用して、Studio で ​`src/main/resources/myJson.json`​ を作成します。
    
    Studio にファイルがすでにある場合は、このステップを省略できます。次のステップでは、このファイルのコンテンツをペイロードとして使用する方法を示します。
2. \[Transform Message\] タブのソースコード領域の現在のスクリプトを、入力のペイロードを選択するスクリプトに置き換えます。
    
    ```dw
    %dw 2.0
    output application/json
    ---
    payload
    ```
3. ペイロードはまだ存在しないため、ここでペイロードをプレビューすることはできません。
    
    ![Anypoint Studio でペイロードに特定の項目が含まれているかどうかを確認する DataWeave スクリプト](/mulesoft/current/ja-jp/dataweave/2.3/_images/dw-tut-payload-example2.png)
4. ここで、簡単な JSON オブジェクトを Transform Message のペイロードとして提供します。
    
    1. **\[Transform Message\]**​ タブで、​**\[Preview (プレビュー)\]**​ ボタンの​_左端_​の長方形をクリックすると、列形式のグラフィカルビューがソースコード領域の横に開きます。
        
        ![Anypoint Studio でメタデータを定義する Transform Message コンポーネント](/mulesoft/current/ja-jp/dataweave/2.3/_images/studio-define-payload.png)
        
        長方形の上にマウスポインターを置くと、​**\[Show Graphic (グラフィックを表示)\]**​ の表示ラベルが表示されます。
    2. **\[Transform Message\]**​ タブの左端の列で ​**\[Payload: Unknown (ペイロード: 不明)\]**​ を見つけて、​**\[Define metadata (メタデータを定義)\]**​ をクリックします。
        
        **\[Define metadata (メタデータを定義)\]**​ リンクが表示されない場合は、左端の列で ​**\[Payload: (ペイロード:)\]**​ エントリを右クリックし、​**\[Set Metadata (メタデータを設定)\]**​ をクリックすると、​**\[Select metadata type (メタデータ型を選択)\]**​ ダイアログが開きます。
5. ここで、(​[readUrl](#readurl_ex)​ の例で作成した) ​`myJson.json`​ のコンテンツを Transform Message コンポーネントに読み込みます。
    
    1. **\[+Add (+追加)\]**​ をクリックして、​**\[Create new type (新しい型の作成)\]**​ ダイアログを開きます。
    2. ダイアログで ​**\[Type id (型 id)\]**​ に「​`myJsonType`​」と入力し、​**\[Create type (型を作成)\]**​ をクリックします。
        
        ![新しい型を作成するダイアログ](/mulesoft/current/ja-jp/dataweave/2.3/_images/studio-create-type.png)
    3. 開いている ​**\[Select metadata type (メタデータ型を選択)\]**​ に戻り、​**\[Type (型)\]**​ ドロップダウンメニューから ​**\[JSON\]**​ を選択します。
        
        ![型を選択する \[Select metadata type (メタデータ型を選択)\] ダイアログ](_images/studio_select_metadata_type.png)
    4. 新しい型の下で、​**\[Schema (スキーマ)\]**​ を ​**\[Example (例)\]**​ に変更します (上の図を参照)。
    5. 省略記号 (​**…​**​) のあるナビゲーションボタンを使用して ​`src/main/resources/myJson.json`​ を見つけて、​**\[Open (開く)\]**​ をクリックします。ファイルのコンテンツの構造 (​`hello: _String_`​) が ​**\[Select metadata type (メタデータ型を選択)\]**​ ウィンドウに表示されます。
    6. ここで、​**\[Select (選択)\]**​ をクリックし、ファイルのコンテンツをメッセージペイロードに読み込みます。
    7. \[Preview (プレビュー)\] ペインに ​`myJson.json`​ からの JSON オブジェクトが表示されます。
        
        必要に応じて、​**\[Preview (プレビュー)\]**​ をクリックして、\[Preview (プレビュー)\] ペインを開くことができます。
    8. ここで、​**\[Preview (プレビュー)\]**​ ボタンの横にある​_空_​の長方形をクリックし、ソースコード領域を開きます。スクリプトの本文を ​`payload.hello`​ に変更し、既存の DataWeave ヘッダーコンテンツを保持します。
        
        \[Preview (プレビュー)\] ペインにはペイロードの値 (​`"world"`​) のみが含まれます。
        
        以下は、Studio にこの例がどのように表示されるかを示しています。
        
        ![Anypoint Studio で「world」という単語を JSON 形式で出力する DataWeave スクリプト](/mulesoft/current/ja-jp/dataweave/2.3/_images/dw-tut-world.png)
        
        準備が整ったら、​[DataWeave セレクター](https://docs.mulesoft.com/jp/dataweave/2.3/dataweave-selectors)​についての詳細を確認してください。

## [](#next_steps)次のステップ

- Studio UI で Mule アプリケーションの開発とデータマッピングを開始するには、[チュートリアル: Database Connector と DataWeave を使用する Mule アプリケーションの作成](https://docs.mulesoft.com/jp/mule-runtime/4.3/mule-app-tutorial)を参照してください。
- Transform Message コンポーネント以外にも多くの Mule Connector、モジュール、コアコンポーネントが​**「fx」**​項目で DataWeave セレクターと短い DataWeave 式を受け入れます。
    
    これらのコンポーネントについての詳細は、​[「Mule コンポーネント」](https://docs.mulesoft.com/jp/mule-runtime/4.3/mule-components)​で学習できます。
    
    実行中の Mule アプリケーションでサンプルデータを試す場合、Transform Message と連携するかどうかにかかわらず、外部データソースを使用するのではなく以下のコアコンポーネントを使用できます。
    
    - [Set Payload](https://docs.mulesoft.com/jp/mule-runtime/4.3/set-payload-transformer-reference)​。Mule イベントのペイロードのコンテンツを提供します。
    - [Set Variable](https://docs.mulesoft.com/jp/mule-runtime/4.3/variable-transformer-reference)​。Mule イベントの​[変数](https://docs.mulesoft.com/jp/mule-runtime/4.3/about-mule-variables)​内でコンテンツを作成します。
    - [Scheduler](https://docs.mulesoft.com/jp/mule-runtime/4.3/scheduler-concept)​。Mule イベントの通常の生成をトリガーします。
    - [Logger](https://docs.mulesoft.com/jp/mule-runtime/4.3/logger-component-reference)​。Studio コンソールで、記録された出力と問題を参照します。

このいくつかのコンポーネントの使用例を以下に示します。

![Anypoint Studio で「helloWorld」を出力するフロー](/mulesoft/current/ja-jp/dataweave/2.3/_images/studio-hello-world.png)

- Set Payload の​**「fx」**​値を ​`output application/json --- { hello : "world"}`​ に設定します。
- Logger の​**「fx」**​値は ​`payload`​ に設定されています。これは、プロジェクトの UI と XML 設定ファイルでは ​`#[payload]`​ のように表示されます。
- _実行中_​の Mule アプリケーション (​`testscript`​) の ​**\[Console (コンソール)\]**​ タブに Set Payload からのペイロードが表示されます。