我正在调用第三方API并作为响应接收下一个字符串:
"[{\"name\":\"name\",\"id\":1}]"
我认为它不是有效的json,因为它引用了它。有可能以某种方式将它映射到具有jackson
,gson
库的java对象吗?
或者无论如何我应该编写自定义转换器/解串器?
答案 0 :(得分:0)
您不需要自定义转换器或反序列化器。你当然可以写一个,但我不鼓励你这样做。明确这里发生的事情,特别是当你在团队中工作时。这是另一方有问题,他们没有输出有效的JSON。
杰克逊用这种方式反序列化他们的输出:
ObjectMapper mapper = new ObjectMapper();
String json = theirOutput.substring(1, theirOutput.length - 1);
Object myObject = mapper.readValue(json, MyObject.clas);
在上面提供一些文档,为什么你这样做,所以每个人都明白这里发生了什么。在我看来,这是一个比编写自定义转换器或解串器更清晰的解决方案。