gpt4 book ai didi

java - 将 JSON 响应映射到多个 POJO

转载 作者:行者123 更新时间:2023-12-01 23:56:54 25 4
gpt4 key购买 nike

我正在以 JSON 的形式将响应发送到 spring Controller ,并且我想将其映射到两个不同的 POJO。因为它包含两个 pojo 的组合数据。我该怎么做。

我发送 JSON 的代码

$("#configure-buy-online").click(
function(e) {
var customProduct = '{"name":"Custom'
+ '","vcpu" : "'
+ $('#core')
.val()
+ '","ram" : "'
+ $('#ram')
.val()
+ '","hddSata":"'
+ $('#hddsata')
.val()
+ '"}';
console.log("Product :"+ customProduct);
$
.ajax({
type : 'POST',
url : '../addToCartCustomize.do',
dataType : 'json',
contentType : 'application/json',
data : customProduct,
success : function(data) {
alert("Success");
},
error : function() {

}
});
});

Spring Controller

String addCustomProductToCart(@RequestBody CustomProduct customProduct)
{

}

我知道如何为 One pojo 做到这一点。但不知道如何将相同的 JSON 映射到两个 Pojo。

最佳答案

我不知道有任何 JAX-RS 或类似的方法可以做到这一点。我会读取未修改的 JSON(作为文本)并直接使用 Jackson:

void doSomething(@RequestBody String pureJson) {
ObjectMapper mapper = new ObjectMapper();
PojoA pojoA = mapper.readValue(pureJson, PojoA.class);
PojoB pojoB = mapper.readValue(pureJson, PojoB.class);
}

或者,您可以将 PojoA 转换为 JSON,然后转换为 PojoB,如下所示:

void doSomething(@RequestBody PojoA pojoA) {
ObjectMapper mapper = new ObjectMapper();
String pureJson = mapper.writeValueAsString(pojoA);
PojoB pojoB = mapper.readValue(pureJson, PojoB.class);
}

但这在我看来有点复杂。

关于java - 将 JSON 响应映射到多个 POJO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15448839/

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