java如何在spring中获得正确格式的json
我使用RestTemplate和JSONObject从数据库中获取数据并将post发送到服务器 我的服务:
List<MyMap> customerList = customerService.getAllCustomerViewBasicInfo(params);
customerList将从数据库中获取所有数据
我的控制器:
JSONArray ja = new JSONArray();
ja.put(customerList);
JSONObject obmain1 = new JSONObject();
obmain1.put("actionType", "update-contact");
obmain1.accumulate("data", ja);
JSONArray jomain1 = new JSONArray();
jomain1.put(obmain1);
JSONObject jomain = new JSONObject();
jomain.put("userSender", "myemail@gmail.com");
jomain.put("data", jomain1);
System.out.println(jomain);
当我得到数据时,结果如下:(格式错误)
{
"userSender": "myemail.com",
"data": [
{
"actionType": "update-contact",
"data": [
[
[
{
"name": "TEST",
"lastname": "TESTER",
"phones": "0165458852",
"addresses": "TEST",
"passport": "870402152364",
"customerType": "company"
},
{
"name": "TEST",
"lastname": "TESTER1",
"phones": "0165458852",
"passport": "870402152364",
"customerType": "company"
}
]
]
]
}
]
}
但它是错误的格式
我希望得到正确的格式,并期望如下:(正确的格式)
{
"senderUser": "myemail.com",
"data": [
{
"actionType": "update-contact",
"data": {
"name": "LƯƠNG BẢO ",
"lastname": "LONG",
"type": 0,
"title": "ms",
"passport": "123123",
"gender": 1,
"dateOfBirth": "03-01-2021",
"emails": [
{
"value": "myemail.com"
}
],
"phones": [
{
"value": "0902032618"
}
],
"addresses": [
{
"addressDetail": "osaka",
"street": "36 osaka",
"city": "Tokio",
"state": "Tokio",
"country": {
"code": "JP",
"name": "japan"
}
}
],
"cusFields": [
{
"600f9cb0f02f084bd8a3dcdb": "TEST"
},
{
"600fbc6ef02f084bd8a3f7bd": "TEST2"
},
{
"600fbc6ef02f084bd8a3f7be": "TEST3"
}
],
"customerType": "company",
"600f9cb0f02f084bd8a3dcdb": "SME"
}
}
]
}
如何获得预期的正确数据?多谢
# 1 楼答案
首先,在CustomerList列表中,电子邮件、电话和地址属性必须是对象列表类型,如果不是,在进行json序列化之前,必须使用逗号等分隔符拆分字符串
一旦你做到了这一点,你应该使用的代码是