機械翻訳について

WebサービスでのGroovyマップおよびリストの使用

webサービスから構造化データを渡して受信する場合、Groovyマップはオブジェクトとそのプロパティを表します。

たとえば、EmpnoEnameSalおよびHiredateという名前のプロパティを持つEmployeeオブジェクトは、4つのキー/バリュー・ペアを持つMapオブジェクトで表されます。ここで、プロパティの名前はキーです。

次の構文を使用して空のMapを作成できます:

def newEmp = [:]

その後、次のように明示的なput()メソッドを使用してマップにプロパティを追加できます:

newEmp.put("Empno",1234)
newEmp.put("Ename","Sean")
newEmp.put("Sal",9876)
newEmp.put("Hiredate",date(2013,8,11))

また、次のような単純な直接割当て表記法を使用して、マップ・キー/バリューのペアを割り当てたり、更新したりすることもできます:

newEmp.Empno = 1234
newEmp.Ename = "Sean"
newEmp.Sal = 9876
newEmp.Hiredate = date(2013,8,11)

最後に、新しいマップを作成し、コンストラクタ構文を使用してそのプロパティの一部またはすべてを一度に割り当てることもできます:

def newEmp = [Empno    : 1234,
              Ename    : "Sean",
              Sal      : 9876,
              Hiredate : date(2013,8,11)]

オブジェクトのコレクションを作成するには、Groovy Listオブジェクトを使用します。 一度に1つのオブジェクトを作成し、空のリストを作成し、リストのadd()メソッドをコールして両方のオブジェクトをリストに追加できます:

def dependent1 = [Name      : "Dave",
                  BirthYear : 1996]
def dependent2 = [Name      : "Jenna",
                  BirthYear : 1999]
def listOfDependents = []
listOfDependents.add(dependent1)
listOfDependents.add(dependent2)

いくつかのステップを保存するために、前述の最後の3行を1行で実行するには、次のように2つの目的の要素を持つ新しいリストを1行に作成します:

def listOfDependents = [dependent1, dependent2]

リスト・コンストラクタ構文とマップ・コンストラクタ構文の組合せを使用して、マップのリストを1回で作成することもできます:

def listOfDependents = [[Name      : "Dave",
                         BirthYear : 1996], 
                        [Name      : "Jenna",
                         BirthYear : 1999]]

前述の従業員オブジェクトに、依存する子を表すオブジェクトのリストであるDependentsというプロパティがある場合、(割り当てられた値としてマップのリストを使用して)前述と同じ構文を使用してプロパティを割り当てることができます:

newEmp.Dependents = [[Name      : "Dave",
                      BirthYear : 1996], 
                     [Name      : "Jenna",
                      BirthYear : 1999]]

最後に、コンストラクタ構文をさらにネストすることで、ネストされた依存を持つ新しい従業員を1つの文に構築することもできます:

def newEmp = [Empno      : 1234,
              Ename      : "Sean",
              Sal        : 9876,
              Hiredate   : date(2013,8,11),
              Dependents : [
                   [Name      : "Dave",
                    BirthYear : 1996], 
                   [Name      : "Jenna",
                    BirthYear : 1999]] 
             ]

マップおよびリストの詳細は、「リストの使用」および「マップの使用」を参照してください