前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >三种项目模式下 后端将Javabean数据 转为json数据

三种项目模式下 后端将Javabean数据 转为json数据

原创
作者头像
猎户星座1
修改2020-06-10 17:07:02
5570
修改2020-06-10 17:07:02
举报
文章被收录于专栏:Java StudyJava Study

前提说明为了演示的一致性,将返回数据进行的统一,编写一个统一返回数据类,一般返回的数据包括code 状态码,是否成功 true ,false ,自定义信息,及最重要的data 数据,采用HashMap类型。

代码语言:txt
复制
@Data  //使用Data来代替 get set 方法 ,实际也是使用了 Java的反射机制
public class E {

    private Boolean success;
    private Integer code;
    private String message;
    private Map<String,Object> data = new HashMap<>();

    private E(){}
    //设置两个比较常用的 状态,并返回该对象,可以一直设置属性,(链式编程)

    public static E ok(){        
        E r = new E();
        r.setSuccess(true);
        r.setCode(ResultCode.OK);
        r.setMessage("成功");
        return r;
    }
    //失败时 直接把属性设置好
    public static E error(){       
        E r = new E();
        r.setSuccess(false);
        r.setCode(ResultCode.ERROR);
        r.setMessage("失败");
        return r;
    }

    public E success(Boolean success){
        this.setSuccess(success);
        return this;
    }

    public E message(String message){
        this.setMessage(message);
        return this;
    }

    public E code(Integer code){
        this.setCode(code);
        return this;
    }

    public E data(String key, Object value){
        this.data.put(key, value);
        return this;
    }

    public E data(Map<String, Object> map){
        this.setData(map);
        return this;
    }
}

三种项目模式,都使用这个统一返回类型,作统一演示

Servlet项目

servlet原生EE 项目中的controller没有像使用框架控制层一样可以是一个加注解的”方法“,类是没有返回值类型的,因此可以借助使用流写入到响应中。

fastjson 去将 E 转为json 格式。servlet项目基本没有用到maven项目 ,因此下载jar 然后add libary 中 附上 fastjson jar下载的地址

https://github.com/alibaba/fastjson

代码语言:txt
复制
    PrintWriter writer = response.getWriter();
	String jsonString= JSON.toJSONString(E.ok());
	writer.print(jsonString);  //将要返回的数据,写入到 响应里。
	writer.flush();  //将缓冲区刷新出去
	writer.close();  //或者直接关闭

使用@Controller 的spring项目

在每个请求方法上 加上@RequestBody 来,会将返回的 Java实体类自动转化为json 串格式

使用@RestController 的spring项目

使用RestController 的项目中 请求返回的结果都自动转化为 json的字符串的形式。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Servlet项目
  • 使用@Controller 的spring项目
  • 使用@RestController 的spring项目
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档