加特林';s jsonPath以静默方式将空对象转换为";空";一串

加特林';s jsonPath以静默方式将空对象转换为";空";一串,json,scala,jackson,gatling,Json,Scala,Jackson,Gatling,我目前正在评估一个用例,需要从服务器检索JSON数据,对其进行操作并将其发回。不幸的是,我遇到了一个有趣的问题,在响应中有空值 我正在使用Jackson的ObjectMapper将值反序列化并序列化为一个HashMap[Object,Any]: 场景(“场景”) .exec(http(“get”) .get(url) .asJson .check(jsonPath($).saveAs(“json”)) .exec(http://post) .post(网址) .asJson .body(Stri

我目前正在评估一个用例,需要从服务器检索JSON数据,对其进行操作并将其发回。不幸的是,我遇到了一个有趣的问题,在响应中有空值

我正在使用Jackson的ObjectMapper将值反序列化并序列化为一个
HashMap[Object,Any]

场景(“场景”)
.exec(http(“get”)
.get(url)
.asJson
.check(jsonPath($).saveAs(“json”))
.exec(http://post)
.post(网址)
.asJson
.body(StringBody(“${json}”))
这里有一个虚拟网站可以试用:

Web服务器返回:

{
  "name": "frodo",
  "note": null
}
加特林的剧本回响了:

{
  "name": "frodo",
  "note": "null"
}
你看,note字段变成了
“null”
,而不是正确的
null
。为什么会这样?有办法绕过它吗?我做错什么了吗?我缺少一些Jackson选项?

这是一个将在下一版本(3.4.0)中修复的选项。
感谢您的报道,但下次,您能使用我们在Github上的bugtracker吗?:)

请尝试
“${json.jsonStringify()}”
@GeorgeLeung不幸的是,这并没有改变任何事情。生成的字符串仍然包含
“null”
而不是
null
谢谢。如果我知道这是一个bug,我会使用bugtracker。我没想到会是这样,我想这可能是Scala的局限性,或者是一些奇怪的边缘案例。再次感谢您的精彩报道,它使调查和修复变得非常容易。