@ARRAYディレクティブ
@arrayディレクティブを使用すると、ネストされたオブジェクトを配列として明示的に形成できます。
@arrayディレクティブには引数がありません。
SELECT JSON_SERIALIZE(data PRETTY) AS data FROM GRAPHQL('
driver {
driverId: driver_id
driverName: name
driverPoints: points
teamDetails: team @array {
teamId: team_id
teamName: name
teamPoints: points
}
}
');
前述の例では、フィールド
teamID、teamNameおよびteamPointsが出力の配列の一部である必要があることを明示的に定義しています:DATA
--------------------------------------------------------------------------------
{
"driverId" : 101,
"driverName" : "Lando Norris",
"driverPoints" : 282,
"teamDetails" :
[
{
"teamId" : 301,
"teamName" : "McLaren Mercedes",
"teamPoints" : 666
}
]
}
{
"driverId" : 102,
"driverName" : "Oscar Piastri",
"driverPoints" : 384,
"teamDetails" :
[
{
"teamId" : 301,
"teamName" : "McLaren Mercedes",
"teamPoints" : 666
}
]
}
.................................
.................................
20 rows selected.
@arrayディレクティブのかわりに、角括弧を使用して、配列に含める必要があるフィールドを囲むこともできます。このため、次の例では、@arrayディレクティブを使用した場合と同じ出力が生成されます:SELECT JSON_SERIALIZE(data PRETTY) AS data FROM GRAPHQL('
driver {
driverId: driver_id
driverName: name
driverPoints: points
teamDetails: team
[
{
teamId: team_id
teamName: name
teamPoints: points
}
]
}
');