我尝试了几次,但我无法解决它,我需要帮助。
我希望 JsonNode 反对
JsonNode :
{
"usdusd" : 1.00,
"usdkrw" : 1100
}
我的对象
public class MyObject {
private BigDecimal usd;
private BigDecimal krw;
}
如何使用 org.modelmapper.ModelMapper 进行映射? JsonNode -> MyObject
这是通过objectmapper实现的:
ObjectMapper mapper=new ObjectMapper();
MyObject value=mapper.readValue(jsonNode,MyObject.class);
这是通过模型映射器实现的
ModelMapper mapper = new ModelMapper();
mapper.getConfiguration().addValueReader(new JsonElementValueReader());
JsonElement responseElement = new JsonParser().parse(json);
MyObject foo = mapper.map(responseElement, MyObject.class);
我正在使用Spring Boot(2.4.2(。杰克逊是这里的默认解析器,因此无需添加任何依赖项。我使用以下代码仅使用ObjectMapper将JsonNode转换为My Object(不需要ModelMapper(。这里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
所以你需要强制地进行"投掷"或"尝试接住"。
在美元字段上使用@JsonProperty("USDdusd"(,在KRW字段上使用@JsonProperty("USDKRW"(将您的文件映射到JSON节点。 然后按照@Mayank所说使用ObjectMapper。