您的实现存在一个问题,即您显式创建 JSON 对象并返回它,这不是必需的。
相反,你应该只发送你的java POJO /类,spring会将其转换为JSON并返回它。
Spring 用作默认的序列化程序/反序列化程序。
在这里,由于一个对象已经是,杰克逊不知道如何序列化它。Jackson
JSONObject
有两种方法可以解决此问题:
解决方案1。
定义您自己的数据类型并填充它。
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
@GetMapping(value = "/sectionbyaxepro/{codecomp}", produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<Map<String, String>> getByAxePro(@PathVariable String codecomp) {
Map<String, String> map = new HashMap<>();
map.put("cce0","frityyy");
return ResponseEntity.status(HttpStatus.OK).body(map);
}
或
解决方案2。
将现有代码修改为以下任一方式。
1
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
@GetMapping(value = "/sectionbyaxepro/{codecomp}", produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<String> getByAxePro(@PathVariable String codecomp) {
JSONObject jsonModel = new JSONObject();
jsonModel.put("cce0","frityyy");
return ResponseEntity.status(HttpStatus.OK).body(jsonModel.toString());
}
2
@GetMapping(value = "/sectionbyaxepro/{codecomp}", produces = MediaType.APPLICATION_JSON_VALUE)
public String getByAxePro(@PathVariable String codecomp) {
JSONObject jsonModel = new JSONObject();
jsonModel.put("cce0","frityyy");
return jsonModel.toString();
}