Json要求POST放心
Json request POST rest-assured
请帮我根据以下输出创建正文请求:
{
"categories": [
{
"categoryId": "4654-456465-4564",
"fields": {
"4564654-454646-4564": "Ano",
"4564654-454646-4561": "Super"
}
}
],
"lastUpdate": "1231",
"controlStructureId": "4654-456465-4564",
"controlId": "4654-456465-4564",
"vehicleId": "4654-456465-4564"
}
我的代码在这里,但它不正确,因为我在*字段*部分
中有不需要的[]
public void testPOST() {
Map<String, Object> jsonBodyUsingMap = new HashMap<String, Object>();
jsonBodyUsingMap.put("categories", Collections.singletonList(new HashMap<String, Object>() {
{
put("categoryId", "4654-456465-4564");
put("fields", Arrays.asList(new HashMap<String, Object>() {{
put("4564654-454646-4561", "Super");
put("4564654-454646-4564", "Ano");
}}
));
}
}
));
jsonBodyUsingMap.put("lastUpdate", "1231");
jsonBodyUsingMap.put("controlStructureId", "4654-456465-4564");
jsonBodyUsingMap.put("controntrolId", "4654-456465-4564");
jsonBodyUsingMap.put("vehicleId", "4654-456465-4564");
您似乎在包装 key/value 对象,HashMap
在 Array
方法中。如果你丢失了它,你将得到 keys/values 而不是“括号”(无键值列表)
put("fields", new HashMap<String, Object>() {{
put("4564654-454646-4561", "Super");
put("4564654-454646-4564", "Ano");
}});
您可以只从 * 字段* 中删除 Arrays.asList() 并只保留哈希映射
public void testPOST() {
Map<String, Object> jsonBodyUsingMap = new HashMap<String, Object>();
jsonBodyUsingMap.put("categories", Collections.singletonList(new HashMap<String, Object>() {
{
put("categoryId", "4654-456465-4564");
put("fields", new HashMap<String, Object>() {{
put("4564654-454646-4561", "Super");
put("4564654-454646-4564", "Ano");
}}
);
}
}
));
jsonBodyUsingMap.put("lastUpdate", "1231");
jsonBodyUsingMap.put("controlStructureId", "4654-456465-4564");
jsonBodyUsingMap.put("controntrolId", "4654-456465-4564");
jsonBodyUsingMap.put("vehicleId", "4654-456465-4564");
请帮我根据以下输出创建正文请求:
{
"categories": [
{
"categoryId": "4654-456465-4564",
"fields": {
"4564654-454646-4564": "Ano",
"4564654-454646-4561": "Super"
}
}
],
"lastUpdate": "1231",
"controlStructureId": "4654-456465-4564",
"controlId": "4654-456465-4564",
"vehicleId": "4654-456465-4564"
}
我的代码在这里,但它不正确,因为我在*字段*部分
中有不需要的[]public void testPOST() {
Map<String, Object> jsonBodyUsingMap = new HashMap<String, Object>();
jsonBodyUsingMap.put("categories", Collections.singletonList(new HashMap<String, Object>() {
{
put("categoryId", "4654-456465-4564");
put("fields", Arrays.asList(new HashMap<String, Object>() {{
put("4564654-454646-4561", "Super");
put("4564654-454646-4564", "Ano");
}}
));
}
}
));
jsonBodyUsingMap.put("lastUpdate", "1231");
jsonBodyUsingMap.put("controlStructureId", "4654-456465-4564");
jsonBodyUsingMap.put("controntrolId", "4654-456465-4564");
jsonBodyUsingMap.put("vehicleId", "4654-456465-4564");
您似乎在包装 key/value 对象,HashMap
在 Array
方法中。如果你丢失了它,你将得到 keys/values 而不是“括号”(无键值列表)
put("fields", new HashMap<String, Object>() {{
put("4564654-454646-4561", "Super");
put("4564654-454646-4564", "Ano");
}});
您可以只从 * 字段* 中删除 Arrays.asList() 并只保留哈希映射
public void testPOST() {
Map<String, Object> jsonBodyUsingMap = new HashMap<String, Object>();
jsonBodyUsingMap.put("categories", Collections.singletonList(new HashMap<String, Object>() {
{
put("categoryId", "4654-456465-4564");
put("fields", new HashMap<String, Object>() {{
put("4564654-454646-4561", "Super");
put("4564654-454646-4564", "Ano");
}}
);
}
}
));
jsonBodyUsingMap.put("lastUpdate", "1231");
jsonBodyUsingMap.put("controlStructureId", "4654-456465-4564");
jsonBodyUsingMap.put("controntrolId", "4654-456465-4564");
jsonBodyUsingMap.put("vehicleId", "4654-456465-4564");