如何使用 gatling JsonPath.query 从 JSON 字符串中检索值?
How do I retrieve a value from a JSON string using gatling JsonPath.query?
给定一个字符串:
val json = """{"id":"derp"}"""
当我尝试使用 JsonPath 检索 ID 的值时,我得到了空迭代器
import io.gatling.jsonpath.JsonPath
JsonPath.query("$.id", json).right.get
// Iterator[Any] = empty iterator
如何获取id的值?
虽然JsonPath.query
的第二个arg的类型是Any
,但是这个函数好像不支持多种类型的参数。它不解析输入字符串,但期望它已经被解析。作为设计选择看起来有点奇怪。
因此,假设 Jackson 被用作解析器库,以下将起作用,并且 select id
键下的值:
val json = """{"id":"derp"}"""
val parsed = new ObjectMapper().readValue(json, classOf[Object])
// to retrieve the ids as a list:
val ids = JsonPath.query("$.id", parsed).right.get.toList
// the only "id" result of the query
val id = ids.head
给定一个字符串:
val json = """{"id":"derp"}"""
当我尝试使用 JsonPath 检索 ID 的值时,我得到了空迭代器
import io.gatling.jsonpath.JsonPath
JsonPath.query("$.id", json).right.get
// Iterator[Any] = empty iterator
如何获取id的值?
虽然JsonPath.query
的第二个arg的类型是Any
,但是这个函数好像不支持多种类型的参数。它不解析输入字符串,但期望它已经被解析。作为设计选择看起来有点奇怪。
因此,假设 Jackson 被用作解析器库,以下将起作用,并且 select id
键下的值:
val json = """{"id":"derp"}"""
val parsed = new ObjectMapper().readValue(json, classOf[Object])
// to retrieve the ids as a list:
val ids = JsonPath.query("$.id", parsed).right.get.toList
// the only "id" result of the query
val id = ids.head