数据转换成json数组或者对象传输

后端返回的数据格式是这样的 body:{

ret:{

meta:[{"colName":"采集时间"},{"colName":"列一"},{"colName":"列一阈值"}],

data:[{"采集时间":"2017-07-07","列一":"20170707","列一阈值":"equals20170707"},{"采集时间":"2017-07-04","列一":"20170704","列一阈值":"equals20170704"}] 

    }

  }

由于数据库存的字段是一对多的关系 一个meta 对多个data中的对象可以有多个数据 可以这么认为 meta是一个标题列名 而data是数据是多条数据。数据库存储的字段是这样的 meta就存[{"colName":"采集时间"},{"colName":"列一"},{"colName":"列一阈值"}] 这样的jsonAarray数组一样的数据,而data存储的是对象是这样的{"采集时间":"2017-07-07","列一":"20170707","列一阈值":"equals20170707"}是大括号是对象 因此 meta可以直接读出来而data是需要拼接成数组后再读出来,具体代码如下:

@ResponseBody

@RequestMapping(value="")

public AjaxJson View(HttpServletRequest request){

  AjaxJson j=new AjaxJson();

  String id=request.getParameter("id");//---获取请求时候传过来的值 条件

  String name=request.getParameter("name");

  model  model=service.findbyid(id);// model 是实体类 findbyid是根据条件获取 meta 标题 是一个字段

  List<model> modelList=service.findbyname(name);//----因为data是多条数据所以用list 接受

  JSONArray retListData=new JSONArray();//----JSON数组 申明一个数组

  for(int i=0;i<modelList.size();i++){

    JSONObject obj=JSON.parseObject(modelList.get(i).getValue());//---读取数据 变成JSON 对象 Object

    retListData.add(obj);//---把每次的json对象放入到json数组里  把多个data 对象变成一个数组 输出来

  }

 //retListData 这个数组存储的是data数据就是这样的[{"采集时间":"2017-07-07","列一":"20170707","列一阈值":"equals20170707"},{"采集时间":"2017-07-04","列一":"20170704","列一阈值":"equals20170704"}]

    JSONObject jsonarry=new JSONObject();//---申明一个json对象 放入meta 和 data 数据

    JSONArray  retListjson=JSON.parseArray(model.getmeta());//-----这个是把meta标题放到 json数组中 因为存储就是数组样式所以可以直接放入

    jsonarry.put("meta",retListjson);//----把 retListjson就是把meta放入一个 json对象中

    jsonarry.put("data",retListData);//---把 data也放入同一个json对象中 

    j.put("ret",jsonarray);//---因为 ret 是一个对象 不是数组 所以就直接返回就可以看到上图哪有的返回值了

  return j;

 

 

}

posted @ 2017-07-20 14:34  伤心的鸽子  阅读(1243)  评论(0编辑  收藏  举报