gpt4 book ai didi

spring - 将 Spring ParameterizedTypeReference 转换为 Jackson TypeReference

转载 作者:行者123 更新时间:2023-12-05 08:55:02 28 4
gpt4 key购买 nike

我在库中使用 spring RestTemplate。接受 ParameterizedTypeRecerence 并将其传递给 rest 模板进行转换的库方法的输入。

出于不相关的原因,我需要将响应主体作为 byte[] 并使用 Jackson 手动转换为 json。Jackson 需要一个 TypeReference 类来进行转换。

我正在寻找一种方法将它们转换为类。

最佳答案

可以使用辅助类

public class CustomTypeReference extends TypeReference<Object>{
private final Type type;

public CustomTypeReference(ParameterizedTypeReference pt){
this.type = pt.getType();
}

@Override
public Type getType() {
return type;
}
}

然后像这样使用它:

ParameterizedTypeReference<List<String>> typeRef
= new ParameterizedTypeReference<List<String>>() {};
TypeReference tr = new CustomTypeReference(typeRef);

ObjectMapper mapper = new ObjectMapper();
String jsonStr = "[\"key\", \"someStr\"]";
List<String> data = mapper.readValue(jsonStr, tr);

或者只是匿名TypeReference<Object>

ParameterizedTypeReference<List<String>> typeRef
= new ParameterizedTypeReference<List<String>>() {};

TypeReference tr = new TypeReference<Object>(){
public Type getType() {
return typeRef.getType();
}
};

关于spring - 将 Spring ParameterizedTypeReference 转换为 Jackson TypeReference,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47360082/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com