JavaSpring @RequestBody的使用,传递json或string数据给前端

Json处理:

@RequestBody 返回json数据或者字符串到前端,
不加这个解析会理解成为之前的前面加一个/后面加一个.jsp的跳转
1.如果handler中返回String,那么直接将内容返回到前端,而不像之前一样被解析成.jsp的格式
2.如果handler中返回json或,对象,则转成json返回到前端

a.这里主要主要中文解码问题,返回json或string不进行之前的加/和jsp的解析时用@ResponseBody进行解析,放回json或者字符串到前端
@Controller
@RequestMapping("/json")
public class JasonController {
    @RequestMapping(value = "/returnValue",produces = "text/html;charset=utf-8")//produces = "text/html;charset=utf-8"处理中文乱码
    @ResponseBody  //响应内容,相当于放回一个字符串或json数据到前端
    public String returnValue(){
        System.out.println("value");
        return "returnValue,你好"; // user.jsp  response.getWriten().write("user...");直接回传字符串到前端
    }

b.这里主要时对象的处理,pom.xml中加jackson-databind,会把返回的对象自动解析成json数据
    @ResponseBody//解析字符串,对象User无法解析,不能返回对象,可以解析成json数据进行放回
    @RequestMapping("/user")
    public User user(){//pom.xml中加jackson-databind,会把返回的对象自动解析成json数据
        System.out.println("------");
        return new User();
    }

c.这里主要是对对象的深化,将其放入数组,然后解析对象数组,注意Java中数组的定义于使用List list = new ArrayList<>();
    @ResponseBody//解析字符串,对象User无法解析,不能返回对象,可以解析成json数据进行放回
    @RequestMapping("/list")
    public List list(){//pom.xml中加jackson-databind,会把返回的对象自动解析成json数据
        System.out.println("---list---");
       List list = new ArrayList<>();
       list.add(new User());
       list.add(new User());
        return list;
    }
}

@RestController //@ResponseBody和@Controller的组合,如果本文件中访问的全部是json或者String类型,就可以直接这样用 public class JasonController {} 放在最前面

你可能感兴趣的:(SpringMVC,json,乱码,java)