2016-11-11 6 views
0

Ich habe JSON wie ["123", "123a", "12c3", "1f23", "E123", "R123"] als Antwort vom Rest Server.Gatling konvertieren Json-Array zu Karte

Ich möchte diese json als Sammlung analysieren und über sie iterieren und exec Anfrage über jedes Element in es , wie zB:

SERVER + "?/Get param = $ {el}" wo el werden sei 123,123a, 12c3,1f23, e123 und r123

Meine Frage ist, wie kann ich es tun.

+1

entweder von Hand analysieren oder eine JSON-Bibliothek verwenden: http://manuel.bernhardt.io/2015/11/06/a-quick-tour- of-json-libraries-in-scala/ – maasg

Antwort

1

Sie sollten so etwas wie dies versuchen:

exec(
    http("my request") 
    .get("/myrequest") 
    .check(status.is(200)) 
    .check(jsonPath("$").ofType[Seq[String]].saveAs("params")) 
).foreach("${params}", "param") { 
    exec(http("request with parameter ${param}") 
    .get("/get") 
    .queryParam("param", "$param") 
) 
} 
2

Sie können etwas tun:

import org.json4s._ 
import org.json4s.jackson.JsonMethods._ 
object JSonToMap { 
    def main(args: Array[String]) { 
    implicit val fmt = org.json4s.DefaultFormats 
    val json = parse("""{ "response" : ["123","123a","12c3","1f23","e123","r123"] }""") 
    val jsonResp = json.extract[JsonResp] 
    println(jsonResp) 
    jsonResp.response.foreach { param => 
     println(s"SERVER /get?param=${param}") 
    } 

    } 
    case class JsonResp(response: Seq[String], somethingElse: Option[String]) 
} 

Jetzt haben Sie einen Fall, in dem die Klasse „Antwort“ Mitglied eine Liste Ihrer Strings ist. Sie können diese Liste dann bearbeiten, aber Sie müssen die Anforderungen an SERVER erstellen.

+0

Dies beantwortet meine Frage nicht. Ich muss Anfrage 1 ausführen, um die JSON parsen die JSON und machen mehrere Anfragen abhängig von der Anzahl der Elemente in der Anfrage 1 Antwort –

+0

Sorry - nicht sicher, ich verstehe, welche Teile Sie wissen, was zu tun ist und welche nicht. Zum Beispiel: "Anfrage 1 ausführen, um die Json zu bekommen" - ist das das Problem? "parse the Json" - funktioniert die obige Lösung? "mehrere Anfragen abhängig von der Anzahl der Elemente in der Antwort von Anfrage 1 stellen" - das ist etwas, das Sie in der ursprünglichen Frage nicht erwähnt haben. Nachdem Sie den JSON analysiert haben, haben Sie eine Liste mit allen Elementen der "Anfrage 1 Antwort", nein? Bitte klären Sie die Frage. – radumanolescu