spring报错:
No converter found for return value of type: class java.util.ArrayList
spring是没有将ArrayList转换成json的转换器的,需要导入json依赖。
<!--jackson依赖-->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.11.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.11.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.11.0</version>
</dependency>
后台java对象转json
方式一:导入jackson依赖之后,直接返回对象就可以转换成json格式。
@ResponseBody
@RequestMapping("/queryStudents.do")
public List<Student> queryStudents(){
List<Student> list= studentService.queryStudents();
return list;
}
方式二:可以使用ObjectMapper,直接将对象转换成json对象,map对象可以转,一般遇到的对象也可以转。不过该方式注意编码方式,要设置UTF-8编码。
@ResponseBody
@RequestMapping(value = "deleteStudent.do",produces = "text/html;charset=UTF-8")
public String deleteStudent(int id){
int nums=studentService.deleteStudent(id);
Student s=new Student();
if(nums>0){
s.setName("龙哥");
}
HashMap<Integer,String> map=new HashMap<>();
map.put(1,"龙龙long");
ObjectMapper om=new ObjectMapper();
String res="";
try {
res=om.writeValueAsString(s);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
return res;
}
方法三:可以直接手写json格式的字符串,然后返回,里面必须使用双引号,因此要用反转义字符。
String tips="删除失败";
if(nums>0){
tips="{\"tips\":true}";
}
return tips;