javaWeb的JSON接收并jSON返回方式

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/seeker_lqq/article/details/85244837

场景:javaWeb项目中后台接口返回前端的数据的格式有多种,在此我只写一下最常用的JOSN格式吧

案例如下:

@ResponseBody
@RequestMapping("/queryByUser")
public R queryByUser(@RequestBody(required = false) User user) {

    //下面模拟一下数据,一些数据的判断,就省略了哟
    //1.1 返回一条数据
    User user1=new User();
    user1.setName("张三");
    user1.setPassword("123456");

    User user2=new User();
    user2.setName("李四");
    user2.setPassword("123456");

    //1.2 返回多条数据
    List<User> list=new ArrayList<User>();

    //把bean对象添加到集合
    list.add(user1);
    list.add(user2);

    R r = R.ok();//继承HashMap
    r.put("user", user1);
    r.put("list", list);
    r.put("total",list.size());
    return r;
} 


    相关说明:
     1.1 @RequestBody(required = false) User user 接收请求为的参数为一个json格式 bean对象,required默认为true,就是必须 参数必须传值,不然报空指针异常,false则允许为空,因为json支持bean对象传参,参数就通常可以bean对象,很方便。

     1.2 返回json要在方法上加上@ResponseBody,返回json数据,其作用在方法上的, 表示该方法的返回结果直接写入 HTTP response body 中,一般在异步获取数据时使用【也就是ajax】,在使用 @RequestMapping后,返回值通常解析为跳转路径,但是加上 @ResponseBody 后返回结果不会被解析为跳转路径,而是直接写入 HTTP response body 中。 比如异步获取 json 数据,加上 @ResponseBody 后,会直接返回 json 数据。@RequestBody 将 HTTP 请求正文插入方法中,使用适合的 HttpMessageConverter 将请求体写入某个对象。


     1.3 R r = R.ok();继承HashMap,封装返回json数据,R实体如下:

import java.util.HashMap;
import java.util.Map;

/**
 * 返回数据
 */
public class R extends HashMap<String, Object> {
    private static final long serialVersionUID = 1L;

    public R() {
        put("code", "0");
        put("message", "数据处理成功");
    }

    public static R error() {
        return error("500", "未知异常,请联系管理员");
    }

    public static R error(String msg) {
        return error("500", msg);
    }

    public static R error(String code, String msg) {
        R r = new R();
        r.put("code", code);
        r.put("message", msg);
        return r;
    }

    public static R ok(String msg) {
        R r = new R();
        r.put("message", msg);
        return r;
    }

    public static R ok(Map<String, Object> map) {
        R r = new R();
        r.putAll(map);
        return r;
    }

    public static R ok() {
        return new R();
    }

    public R put(String key, Object value) {
        super.put(key, value);
        return this;
    }

}

好了,就到这里啦! (^-^)

猜你喜欢

转载自blog.csdn.net/seeker_lqq/article/details/85244837