在微服務中,我們將多個 dtos 資料作為字串 json 發布。
控制器:
@RequestMapping(value="/json",method = RequestMethod.POST)
public String getjson(@RequestBody String json) {
///Service process
}
發布 Json:
{
"dtos":{
"Dto1":{
"name":"Dto1 Name Field",
"filter":[
{"key":"f1","value":1},
{"key":"f2","value":10}
]
},
"Dto2":{
"city":"Newyork",
"filter":[
{"key":"f1","value":1},
{"key":"f2","value":10},
{"key":"f3","value":10}
]
}
},
"page":1
}
DTO:
public class Dto1{
private String name;
}
public class Dto2{
private String city;
}
Dto1 和 Dto2 是 java DTO 物件名稱。如何將字串json轉換為java物件?
uj5u.com熱心網友回復:
您可以創建一個包含所有屬性的新 DTO 并在請求中接收:
public class Filter{
private String key;
private int value;
}
public class Dto1{
private String name;
private List<Filter> filter;
}
public class Dto2{
private String city;
private List<Filter> filter;
}
public class Dtos{
public Dto1 dto1;
public Dto2 dto2;
}
public class DtoToReceiveInRequest{
private Dtos dtos;
private int page;
}
控制器
@PostMapping
public String getjson(@RequestBody DtoToReceiveInRequest json) {
///Service process
}
uj5u.com熱心網友回復:
您可以使用 jackson 庫中的 ObjectMapper,如下所示。
String json = "";
ObjectMapper objectMapper = new ObjectMapper();
Dto1 dto = objectMapper.readValue(json, Dto1.class);
但是在您的特定示例中,您不必有兩個 DTO 類。您可以將值封裝在一個 DTO 中,并以 json 格式獲得該 DTO 的不同實體的串列。
注意。json 字串應該是您要檢索的首選類的表示,例如 Dto1.java。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/396163.html
