原来一个Json接口请求可以这么写
来源:互联网 发布:好未来php面试题 编辑:程序博客网 时间:2024/04/30 06:49
1.最糟糕的写法 version1.0
HashMap<String, String> level1 = new HashMap<String, String>(); level1.put("source", "source"); level1.put("code", "code"); level1.put("password", "password"); HashMap<String, String> level2 = new HashMap<String, String>(); level2.put("getBusinessLevelTokenReq", level1.toString()); HashMap<String, String> datas = new HashMap<String, String>(); datas.put("params", level2.toString()); System.out.println(datas);
{params={getBusinessLevelTokenReq={password=password, code=code, source=source}}}
缺点:
1.此方法比较依赖对方的解析能力
2.所有类型都当作String
3.硬编码太多
2.一般的写法 version2.0
HashMap<String, Object> level1 = new HashMap<String, Object>(); level1.put("source", "source"); level1.put("code", "code"); level1.put("password", "password"); HashMap<String, Object> level2 = new HashMap<String, Object>(); level2.put("getBusinessLevelTokenReq", level1); HashMap<String, String> datas = new HashMap<String, String>(); ObjectMapper om = new ObjectMapper(); String data = om.writeValueAsString(level2); datas.put("params", data); System.out.println(datas);
{params={"getBusinessLevelTokenReq":{"password":"password","code":"code","source":"source"}}}
这是一种标准的json串,所以理论上不存在解析问题
类型不是单一的String了
硬编码太多
3.比较完美的写法 version 3.0
TokenReqBean TokenReqBean=new TokenReqBean(); TokenReqBean.getBusinessLevelTokenReq req =TokenReqBean.new getBusinessLevelTokenReq(); req.setCode("code"); req.setPassword("password"); req.setSource("source"); HashMap<String, String> datas = new HashMap<String, String>(); ObjectMapper om = new ObjectMapper(); String data = om.writeValueAsString(req); datas.put("params", data); System.out.println(datas);
public class TokenReqBean { private Object getBusinessLevelTokenReq; public Object getGetBusinessLevelTokenReq() { return getBusinessLevelTokenReq; } public void setGetBusinessLevelTokenReq(Object getBusinessLevelTokenReq) { this.getBusinessLevelTokenReq = getBusinessLevelTokenReq; } public class getBusinessLevelTokenReq{ private String source; private String code; private String password; public String getSource() { return source; } public void setSource(String source) { this.source = source; } public String getCode() { return code; } public void setCode(String code) { this.code = code; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } @Override public String toString() { return "getBusinessLevelTokenReq [source=" + source + ", code=" + code + ", password=" + password + "]"; } } @Override public String toString() { return "TokenReqBean [getBusinessLevelTokenReq=" + getBusinessLevelTokenReq + "]"; }}
{params={"getBusinessLevelTokenReq":{"password":"password","code":"code","source":"source"}}}
相对于前面两种写法来说,这样的写法就非常的优雅了
记一次项目开发的重构经历
阅读全文
1 0
- 原来一个Json接口请求可以这么写
- 原来可以这么写
- LCD原来可以这么写
- 原来程序可以这么写-Terracotta Sample
- 原来android配置文件可以这么写
- Oracle merge into原来可以这么写
- 类成员函数的回调原来可以这么写~
- 原来命令行参数处理可以这么写-getopt?
- as3的递归原来还可以这么写
- 原来命令行参数处理可以这么写-getopt?
- [转]单例模式原来可以这么写
- 数学 原来可以这么诗意
- 原来幸福可以这么简单
- 原来工作可以这么美好!
- 程序员原来可以这么牛!
- 原来EXECL可以这么玩
- JSON解析的成长史——原来还可以这么简单
- java连连看源码分享(原来连连看这么简单,你也可以写)
- asp.net mvc 之路:静态与伪静态页面的切换
- C语言简单实现动态顺序表
- CodeIgniter框架源码学习之基准测试类--Benchmake.php
- MySQL慢查询日志分析
- 泳池中的大白杨,竟是如此凶猛?
- 原来一个Json接口请求可以这么写
- JavaScript里的eval()函数
- ionic 极光推送 ios 篇
- 7月27日云栖精选夜读:AI时代_运维和测试岗位如何开启"第二春"?
- python3网络爬虫(堆糖网)
- 1080. Graduate Admission (30)
- Python的常用模块
- C++中的隐藏、重载、覆盖(重写)
- 【Hadoop入门】Hadoop2.8的安装步骤