我尝试了几次,但无法解决,需要帮助。
我希望JsonNode成为对象
JsonNode:
{
"usdusd" : 1.00,
"usdkrw" : 1100
}
MyObject
public class MyObject {
private BigDecimal usd;
private BigDecimal krw;
}
如何使用org.modelmapper.ModelMapper进行映射? JsonNode-> MyObject
答案 0 :(得分:1)
这是通过objectmapper实现的:
ObjectMapper mapper=new ObjectMapper();
MyObject value=mapper.readValue(jsonNode,MyObject.class);
这是通过modelmapper实现的
ModelMapper mapper = new ModelMapper();
mapper.getConfiguration().addValueReader(new JsonElementValueReader());
JsonElement responseElement = new JsonParser().parse(json);
MyObject foo = mapper.map(responseElement, MyObject.class);
答案 1 :(得分:0)
我正在使用 Spring Boot (2.4.2)。 Jackson 是这里的默认解析器,因此无需添加任何依赖项。我正在使用以下代码仅使用 ObjectMapper(无需 ModelMapper)将 JsonNode 转换为我的对象。这里 jsonNode 是 com.fasterxml.jackson.databind.JsonNode 的一个实例:
import com.fasterxml.jackson.databind.ObjectMapper;
...
ObjectMapper mapper = new ObjectMapper();
MyObj myObj = mapper.treeToValue(jsonNode, MyObj.class);
当然会抛出一个叫做
的检查异常com.fasterxml.jackson.core.JsonProcessingException
所以你需要强制执行“抛出”或“尝试捕捉”它。
答案 2 :(得分:0)
在字段 usd 上使用 @JsonProperty("usdusd"),在字段 krw 上使用 @JsonProperty("usdkrw") 将您的字段映射到 json 节点。然后像@Mayank 所说的那样使用 ObjectMapper。