json学习 json格式处理

json学习 json格式处理

json数据格式:
规范的格式应该是包括数据返回状态(一般就是false/true),状态码(比如200,7000)
,消息(比如“获取数据成功”/“获取数据失败”),数据对象
@RestController注解

例子1:
有这样一个页面 , 用来显示用户的账户记录数据,并且需要显示每个月的 收入 支出合计
,在分页的时候涉及到一些问题,需要对返回的Json格式做处理,处理起来比较麻烦,后端返回的Json数据格式形式如下:

{
  "code": "0",
  "result": {
    "monthAmount": [
      {
        "date": "2017-09",
        "income": 6000000,
        "expend": 1233800
      }
    ],
    "billList": [
      {
        "id": 2004,
        "amount": 1000000,
        "balance": 4776200,
        "type": "1",
        "sourceId": "7",
        "orderNumber": "20170914100000294222",
        "mchNumber": "v1500949333578",
        "mchName": "大王杂货店",
        "date": "2017-09-14 16:58:52"
      }
    ]
  }
}

分析以上Json数据格式,分为2个数组,一个是合计数组,一个是账户记录,
我们需要将两个数组处理,将相同月份的数据展示在一起,组成新的我们需要的Json格式
如下:

 "arr": [
    {
      "date": "本月",
      "income": 6000000,
      "expend": 1233800,
      "items": [
        {
          "week": "今天",
          "weekdate": "16:58",
          "amount": 1000000,
          "balance": 4776200,
          "statusText": "团体购卡",
          "type": "1",
          "logo": "1"
        }
      ]
    }
  ]

例子2:
首先定义返回实体Resul

package com.steven.utils.result;
 
/**
 * 数据返回实体
 * @author Administrator
 *
 */
public class Result {
	private Integer code; //状态码
	private Boolean isSuccess;//状态
	private String massege;//消息
	private Object result;//数据对象
	
	/**
	 * 无参构造器
	 */
	public Result(){
		super();
	}
/**
	 * 只返回状态,状态码,消息
	 * @param statu
	 * @param code
	 * @param massege
	 */	

	 public Result(Boolean success,Integer code,String massege){
	 	super();
		this.isSuccess=success;
		this.code=code;
		this.massege=massege;
	 }
	/**
	 * 只返回状态,状态码,数据对象
	 * @param statu
	 * @param code
	 * @param object
	 */
	public Result(Boolean success, Integer code, Object result){
		super();
		this.isSuccess = success;
		this.code = code;
		this.result = result;
	} 
	/**
	 * 返回全部信息即状态,状态码,消息,数据对象
	 * @param statu
	 * @param code
	 * @param massege
	 * @param result
	 */
	public Result(Boolean success, Integer code, String massege, Object result){
		super();
		this.isSuccess=success;
		this.code=code;
		this.massege=massege;
		this.result=result;
	}

	public Integer getCode() {
		return code;
	}
 
	public void setCode(Integer code) {
		this.code = code;
	}
 
	public Boolean getIsSuccess() {
		return isSuccess;
	}
 
	public void setIsSuccess(Boolean isSuccess) {
		this.isSuccess = isSuccess;
	}
 
	public String getMassege() {
		return massege;
	}
 
	public void setMassege(String massege) {
		this.massege = massege;
	}
 
	public Object getResult() {
		return result;
	}
 
	public void setResult(Object result) {
		this.result = result;
	}
}

测试代码UserController

/**
	 * 查询所有用户
	 * @throws Exception
	 */
	 @RequestMapping(value="/user/findAll.htm",method=RequestMethod.GET=GET)
	 public void findAll(HttpServletResponse response) throws Exception{
	 		List<User> list = userService.findAll();
	 		if(list.isEmpty()){
			Json.toJson(new Result(false,7000,"没有数据",null),response);
			return;
		}
		List<User> listuser = new ArrayList<User>();
		for(User entity : list){
				User user = new User();
				user.setAdd_time(entity.getAdd_time());
				user.setDelete_status(entity.getDelete_status());
				user.setId(entity.getId());
				user.setLast_login_time(entity.getLast_login_time());
				user.setName(entity.getName());
				user.setPwd(entity.getPwd());
				listuser.add(entity);
		}
		Result result = new Result(true,200,"成功",listuser);
		Json.toJson(result,response);
	}

显示结果
{
	"code": 200,
	"isSuccess": true,
	"massege": "成功",
	"result": [{
		"add_time": 1521368553000,
		"delete_status": false,
		"id": 3,
		"last_login_time": 1521368553000,
		"name": "李四",
		"pwd": "123456"
	}]}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值