Hi! I’m sorry if this question has been answered before, but I couldn’t find any solution so far.
The version of Gatling I’m using is 2.2.0-M2.
My goal is to get random values from JSON array. I was not able to parse the following JSON:
[ { "site": "ABC", "chemistry": [ { "name": "first", "height": 4, "width": 6, }, { "name": "second", "height": 8, "width": 12, } ] }, { "site": "DEF", "chemistry": [ { "name": "second", "height": 8, "width": 12, } ] } ]
using the following code:
object RandomValues {
`
val getRandomValues = exec(StaticResources.getJsonToParse
.check(status.is(200)).check(jsonPath("$[].site").ofType[String].findAll.saveAs(“siteJson”),
jsonPath("$[].chemistry").findAll.saveAs(“chemistryJson”))) //(1)
.exec(session => {
val rnd = (new Random).nextInt(1)
val siteFromJson = session(“siteJson”).as[Seq[String]]
val chemistryFromJson = session(“chemistryJson”).as[Seq[Seq[Map[String, Any]]]] //(2)
val site = siteFromJson(rnd)
val chemistry = chemistryFromJson(rnd)
session})
}
`
Everything works fine for the “site” property, as it is a simple string field. But I can’t parse “chemistry” - if I use
.ofType[Seq[Map[String, Any]]]
at line (1) I get error “No member of type class JsonFilter found for type Seq[Map[String,Any]]”. If I try
.as[Seq[Seq[Map[String, Any]]]]
at line (2), I see “java.lang.ClassCastException: java.lang.String cannot be cast to scala.collection.Seq”.
I’ve tried parsing json with Scala Jackson library, but with no success.
I feel like I’m missing something obvious and this problem should be easy to solve.