首页 > 解决方案 > Spring RestTemplate 无法从 VALUE_STRING 令牌中反序列化 `java.util.ArrayList` 的实例

问题描述

我正在尝试将 JSON 字符串反序列化为 MyClass 列表,但出现此异常:

java.util.ArrayList out of VALUE_STRING token;嵌套异常是 com.fasterxml.jackson.databind.exc.MismatchedInputException:无法反序列化java.util.ArrayList超出 VALUE_STRING 令牌的实例

MyClass 对我从服务器返回的 JSON 字符串中的每个属性都有一个公共字符串 getter/setter:

[{"PublicIP":"1.1.1.1","PrivateIP":"1.1.1.1","InstanceId":"i-1234","IsRunning":false}]

这是调用服务器的代码:

ResponseEntity<List<MyClass>> response =
restTemplate.exchange("http://localhost:5000/api/cloud/thelist",
HttpMethod.GET, null, 
new ParameterizedTypeReference<List<MyClass>>() {});

这是 MyClass bean:

public class MyClass {

private String PublicIP;
private String PrivateIP;
private String InstanceId;
private boolean IsRunning;

public String getPublicIP() {
    return PublicIP;
}

public void setPublicIP(String publicIP) {
    PublicIP = publicIP;
}

public String getPrivateIP() {
    return PrivateIP;
}

public void setPrivateIP(String privateIP) {
    PrivateIP = privateIP;
}

public String getInstanceId() {
    return InstanceId;
}

public void setInstanceId(String instanceId) {
    InstanceId = instanceId;
}

public boolean isIsRunning() {
    return IsRunning;
}

public void setIsRunning(boolean isRunning) {
    IsRunning = isRunning;
}
}

返回字符串是一个列表,我也有 setter 方法。我是否缺少一些说明如何反序列化此对象的配置?

标签: javajsonspringdeserializationresttemplate

解决方案


推荐阅读