Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何反序列化包含转义字符串的JSON响应?(外国客户/杰克逊)_Json_Scala_Jackson_Feign - Fatal编程技术网

如何反序列化包含转义字符串的JSON响应?(外国客户/杰克逊)

如何反序列化包含转义字符串的JSON响应?(外国客户/杰克逊),json,scala,jackson,feign,Json,Scala,Jackson,Feign,我有一个JSON响应,如下所示: "buckets": [ { "info1": "on", "info2": "{\"version\":\"v1\"}" }, { "info1": "off", "info2": "{\"version\":\"v2\"}" }] 这与此代码相对应: case class Response(buckets: Seq[Bucket]) case class Bucket(info1: String, @JsonPro

我有一个JSON响应,如下所示:

    "buckets": [
{
    "info1": "on",
    "info2": "{\"version\":\"v1\"}"
},
{
    "info1": "off",
    "info2": "{\"version\":\"v2\"}"
}]
这与此代码相对应:

case class Response(buckets: Seq[Bucket])

case class Bucket(info1: String, @JsonProperty("info2") info2: Info2)

case class Info2(@JsonProperty("version") version: String)
由于“info2”值包含转义字符串,因此无法正确反序列化,我收到以下错误:

Can not instantiate value of type [simple type, class Info2] from String value ('{"info2":"version"}'); no single-String constructor/factory method
不幸的是,我无法更改JSON响应的方式。从我这方面来说,下一步是什么?我必须使用自定义反序列化技术吗


谢谢

您能尝试先转义字符串,然后解析JSON吗?例如,Apache commons有这样一种方法:StringEscapeUtils.escapeJson(String)。我应该补充一点,当接收到JSON响应时,这种反序列化是由伪HTTP客户端+Jackson进行的。您能在伪HTTP客户端能够解析它之前点击该字符串吗?你能添加一些HTTP过滤器吗?我不确定Feign是否有这个功能,但我会看看。谢谢