2016-11-25 18 views
0

私REPONSEは次のとおりです。foreachループでVectorではなく値を渡す方法は?

[ 
{"id":106455,"assetId":482282,"masterKeyframeId":157060,"closed":false}, 
{"id":106661,"assetId":502174,"masterKeyframeId":169193,"closed":false} 
{.....and so many...} 
] 

私が正しく要求の下に使用した「assetId」と「masterKeyframeId」をフェッチしているが、問題は、私は、foreachループで両方の値を設定するのですかですか? (私は「援助」を使用していると、それは単一の値を取得しますが、それはベクトルを取ると「mkeyframeId」のための単一の値を渡すことは知らない)

.exec(http("request_7") 
      .get(uri3 + "/sortBy=SEGGREGATED_SESSION_SORT;reviewState=IN_PROGRESS") 
      .check(jsonPath("$..assetId").findAll.saveAs("astId")) 
      .check(jsonPath("$..masterKeyframeId").findAll.saveAs("mkeyframeId")) 
      .headers(headers_7) 
      ) 

     .foreach("${astId}", "aid") { 
      doIf(session => session("aid").as[String] != "-1") 
      { 
       exec(http("Set_IDs") 
       .get("https://stackoverflow.com/a/" + accountname + "/assets/${aid}/keyframe/${mkeyframeId}") 
       ) 
      } 
     } 

ここで問題は、それがのようなベクトルを取り、URLを渡し${mkeyframeId}あります= Set_IDs URI = https://qa1.net/a/hbmin1ac/assets/482282/keyframe/Vector(157060,%20169193):

代わり

https://qa1.net/a/hbmin1ac/assets/482282/keyframe/157060 
https://qa1.net/a/hbmin1ac/assets/502174/keyframe/169193 

おかげで、この、 送信要求。

+1

'取得( "/ A /" +アカウント名+「/資産/ $を'mkeyframeId'が'空の 'ベクトルだった場合、' IndexOutOfBoundException'をスローすることができることを覚えておいてください。 –

+0

ありがとうSarvesh。あなたの答えを投稿してください。 – Peter

答えて

1

あなたはこのような何かを試してみてください:

.foreach("${astId}", "aid", "counter") { 
    doIf { session => 
    for { 
     aid <- session("aid").validate[String] 
    } yield aid != "-1" 
    } { 
    exec(http("Set_IDs") 
     .get { session => 
     for { 
      aid <- session("aid").validate[String] 
      mkeyframeId <- session("mkeyframeId").validate[Seq[String]] 
      c <- session("counter").validate[Int] 
     } yield s"https://stackoverflow.com/a/$accountname/assets/$aid/keyframe/${mkeyframeId(c)}" 
     } 
    ) 
    } 
} 

あなたもこのようなdoIfブロックを書き込むことができます。

doIf(_("aid").validate[String].map(_ != "-1")) 
関連する問題