Java生成复杂的json响应
我正试图创建一个与此完全相同的json响应Java生成复杂的json响应,java,spring,spring-boot,graph,Java,Spring,Spring Boot,Graph,我正试图创建一个与此完全相同的json响应 { "clusters": [ { "id": "0-1511866753", "nodes": [ { "id": "node12", "label": "Symfony&qu
{
"clusters": [
{
"id": "0-1511866753",
"nodes": [
{
"id": "node12",
"label": "Symfony",
"clusterId": "0-1511866753"
},
{
"id": "node2",
"label": "Php",
"clusterId": "0-1511866753"
},
{
"id": "node1",
"label": "Laravel",
"clusterId": "0-1511866753"
}
]
}
]}
我取得了以下成就
{
"clusters": [
[
{
"id": "node1",
"label": "Laravel",
"partition": "1",
"clusterId": "0-7179778"
},
{
"id": "node2",
"label": "Php",
"partition": "1",
"clusterId": "0-7179778"
},
{
"id": "node12",
"label": "Symfony",
"partition": "1",
"clusterId": "0-7179778"
}
]
]
}
我用于生成响应的代码:
Map nodegroup=nodeList.stream().collect(Collectors.groupby(节点->节点.get(“分区”));
列表=新的ArrayList();
Map clusterNodes=new HashMap();
节点组forEach(
(键、值)->{
intb=(int)((Math.random()*9000000)+1000000);
字符串uuid=0+“-”+b;
//在每个节点上追加生成的clusterId
forEach(nodeValue->nodeValue.put(“clusterId”,uuid));
列表。添加(值);
}
);
clusterNodes.put(“集群”,列表);
回根节;
问题是我需要做什么来实现首选响应?如前所述,将JSON结构建模为对象/DTO。它将被转换为你想要的。例如,此DTO的JSON输出:
public class ProductDTO {
List<ProductBean> data = new ArrayList<>();
}
它使用Jackson将对象转换为JSON。我想说的是,不要构建自己的JSON响应,而是用Java对其进行建模,然后用类似Jackson的东西将其序列化为JSON。我认为这将是一个更加java化的答案。(例如)
{
"data": [
{
"type": "phone",
"properties": "color:grön",
"price": 277.00,
"store_address": "Blake gränden, Karlskrona"
}
]
}