zoukankan      html  css  js  c++  java
  • 数据转换成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;

    }

  • 相关阅读:
    LeetCode 842. Split Array into Fibonacci Sequence
    LeetCode 1087. Brace Expansion
    LeetCode 1219. Path with Maximum Gold
    LeetCode 1079. Letter Tile Possibilities
    LeetCode 1049. Last Stone Weight II
    LeetCode 1046. Last Stone Weight
    LeetCode 1139. Largest 1-Bordered Square
    LeetCode 764. Largest Plus Sign
    LeetCode 1105. Filling Bookcase Shelves
    LeetCode 1027. Longest Arithmetic Sequence
  • 原文地址:https://www.cnblogs.com/xzcBY/p/7211100.html
Copyright © 2011-2022 走看看