私はこのようなJSONを持っています:
{
"dcsId": "1184001100000000517",
"marketCode": "US",
"languageCode": "en-US",
"profile": {
"base": {
"username": "arunima27",
"activeInd": "R",
"phone": [
{
"activeInd": "Y",
"type": "mobile",
"primaryInd": "Y",
"number": "2234566788"
},
{
"activeInd": "N",
"type": "mobile",
"primaryInd": "N",
"number": ""
}
]
}
}
}
この入力JSONから、payload.profile.base.phone.numberを抽出する必要があります。payload.profile.base.phone.type== "mobile"およびpayload.profile.base.phone.activeInd == "Y"です。実際には、JSON配列(payload.profile.base。* phone)をループして、アクティブで、カテゴリ/タイプがモバイルである電話番号のみを取得する必要があります。
以下のような出力が必要です:
{
"dcsId": "1184001100000000517",
"marketCode": "US",
"languageCode": "en-US",
"username" : "arunima27",
"phoneNumber" : "2234566788"
}
「phoneNumber」出力変数に対してこの変換を行う際に問題に直面しています。
電話でfilterおよびmapを使用して、目的の結果を達成します。
phoneNumber: {
(payload.profile.base.phone filter ($.activeInd == "Y" and $.type == "mobile") map {
number: $.number
}
)}
出力
"phoneNumber": {
"number": "2234566788",
}