{ "systemNameCH":"采购", "systemNameEN":"PED_BNN", "dateTime":"2023-05-08 12:00:01", "requestDesc":"rvt:文件更新1个,新增1个;fbx:文件更新1个,新增1个;gltf:文件更新1个,新增1个;obj:文件更新1个,新增1个", "ip":"192.168.56.43", "port":"21", "updateContent": { "rrt":[{ "version":"PED_BIM_HZL_20230508120001_add", "dataType":"rvt", "fileSign":"PED_BIM_HZL", "remark":"结构", "changeType":"add", "dataChangeList":"设施,座椅,", "updateArea":"车站", "purposes":"模型", "updateLocation":"5层", "updateNumber":"5", "attrChangeDesc":"无", "filePath":"/GIS/PED_BIM/20230508120001/", "files":"PED_BIM_HZL_20230508120001_add.rvt,PED_BIM_HZL_20230508120001_add_1.xml" }]}}
有在Header里面传"content-type: application/json"吗?
这么长一串,建议使用POST方法,后端Controller方法上使用@PostMapping("/xxuri") 注解,xxuri与你访问后台的uri对应。Controller方法的参数就可以接收到这串内容,接收这串参数的参数类型,可定义为字符串,也可直接用自定义对象,对象结构与这个json串结构对应。
import com.fasterxml.jackson.databind.ObjectMapper;
public class YourController {
public ResponseEntity<String> yourApi(@RequestBody String json) {
try {
ObjectMapper objectMapper = new ObjectMapper();
JsonNode jsonNode = objectMapper.readTree(json);
String systemNameCH = jsonNode.get("systemNameCH").asText();
String systemNameEN = jsonNode.get("systemNameEN").asText();
String dateTime = jsonNode.get("dateTime").asText();
String requestDesc = jsonNode.get("requestDesc").asText();
String ip = jsonNode.get("ip").asText();
String port = jsonNode.get("port").asText();
JsonNode updateContent = jsonNode.get("updateContent");
JsonNode rrt = updateContent.get("rrt").get(0);
String version = rrt.get("version").asText();
String dataType = rrt.get("dataType").asText();
String fileSign = rrt.get("fileSign").asText();
String remark = rrt.get("remark").asText();
String changeType = rrt.get("changeType").asText();
String dataChangeList = rrt.get("dataChangeList").asText();
String updateArea = rrt.get("updateArea").asText();
String purposes = rrt.get("purposes").asText();
String updateLocation = rrt.get("updateLocation").asText();
String updateNumber = rrt.get("updateNumber").asText();
String attrChangeDesc = rrt.get("attrChangeDesc").asText();
String filePath = rrt.get("filePath").asText();
String files = rrt.get("files").asText();
// 在这里进行后续的处理
return ResponseEntity.ok("Success");
} catch (Exception e) {
return ResponseEntity.status(HttpStatus.BAD_REQUEST).body("Invalid JSON");
}
}
}