/**
   * 将集合元素封装成json对象并返回
   *
   * @param list 要封装的数组集合
   * @param config 类在转换成json数据时遵循的一些配置规则
   * @param status 状态标识
   * @return json对象 返回json对象的内部格式如下:data中的内容就是list集合中的内容,count表示data中的条数,也就是list集合中数据数 { status:1,
   *     message:"ok", result:{ count:2, data:[
   *     {id:"2353sdkfhosdf",name:boat.jpg,type=1,savepath:"http://172.19.68.77:8080/zhushou/images/logo.jpg"},
   *     {id:"2353sdkfhosdf",name:boat.jpg,type=1,savepath:"http://172.19.68.77:8080/zhushou/images/logo.jpg"},
   *     <p>] } }
   */
  @Deprecated
  public static <T> JSONObject createJsonObject(List<T> list, JsonConfig config, MyStatus status) {

    // 整个json
    JSONObject jsonObject = new JSONObject();
    // result json
    JSONObject resultObject = new JSONObject();
    // 数组json
    JSONArray jsonArray = new JSONArray();

    int count = 0;
    if (list != null) {
      for (T entity : list) {
        JSONObject entityJson;
        if (config == null) entityJson = JSONObject.fromObject(entity);
        else entityJson = JSONObject.fromObject(entity, config);
        jsonArray.add(entityJson);
        count++;
      }
    }
    resultObject.put("count", count);
    resultObject.put("data", jsonArray);
    jsonObject.put("result", resultObject);

    JsonTool.putStatusJson(status, jsonObject);
    return jsonObject;
  }
  /**
   * 将jsonArray和status对象按照格式封装到jsonObject中
   *
   * @param jsonObject 要封装到的json对象
   * @param resultJson result对象
   * @param status 此次操作的描述
   * @return { status:1, message:"ok", result:{ count:1, data:{ .... } }
   *     <p>}
   */
  @Deprecated
  public static void putJsonObject(JSONObject jsonObject, JSONObject resultJson, MyStatus status) {
    // result json
    jsonObject.put("result", resultJson);

    JsonTool.putStatusJson(status, jsonObject);
  }
  /**
   * 封装json返回视图
   *
   * @param status
   * @return
   */
  public static ModelAndView generateModelAndView(MyStatus status) {
    ModelAndView mv = new ModelAndView(PageViewConstant.JSON);
    // 整个json
    JSONObject jsonObject = new JSONObject();
    JsonTool.putStatusJson(status, jsonObject);

    mv.addObject("json", jsonObject.toString());
    return mv;
  }
  /**
   * 将jsonArray和status对象按照格式封装到jsonObject中
   *
   * @param jsonObject 要封装到的json对象
   * @param jsonArray json数组对象,对应data内容
   * @param status 此次操作的描述
   * @return { status:1, message:"ok", result:{ count:1, data:{ .... } }
   *     <p>}
   */
  @Deprecated
  public static void putJsonObject(JSONObject jsonObject, JSONArray jsonArray, MyStatus status) {

    // result json
    JSONObject resultObject = new JSONObject();
    resultObject.put("count", jsonArray.size());
    resultObject.put("data", jsonArray);
    jsonObject.put("result", resultObject);

    JsonTool.putStatusJson(status, jsonObject);
  }
  /**
   * 将jsonArray和status对象按照格式封装到jsonObject中
   *
   * @param jsonObject 要封装到的json对象
   * @param jsonArray json数组对象,对应data内容
   * @param status 此次操作的描述
   * @return { status:1, message:"ok", result:{ count:1, data:{ .... } }
   *     <p>}
   */
  public static void createJsonObject(JSONObject jsonObject, JSONArray jsonArray, MyStatus status) {

    // result json
    JSONObject resultObject = new JSONObject();
    if (jsonArray != null) {
      resultObject.put("count", jsonArray.size());
      resultObject.put("data", jsonArray);
      jsonObject.put("result", resultObject);
    }

    JsonTool.putStatusJson(status, jsonObject);
  }
  /**
   * 将一个对象封装成json对象并生成返回视图
   *
   * @param key ,JSONObject对象对应的key值
   * @param singleObject 要封装的JSONObject对象
   * @param status 此次操作状态
   * @return:返回数据格式 { status:1, message:"ok", result:{
   *     "key":{id:"2353sdkfhosdf",name:boat.jpg,type=1,savepath:"http://172.19.68.77:8080/zhushou/images/logo.jpg"}
   *     <p>} }
   */
  public static ModelAndView generateModelAndView(
      String key, JSONObject singleObject, MyStatus status) {
    ModelAndView mv = new ModelAndView(PageViewConstant.JSON);

    // 整个json
    JSONObject jsonObject = new JSONObject();
    // result json
    JSONObject resultObject = new JSONObject();
    // 将单条记录存进result中
    resultObject.put(key, singleObject);
    jsonObject.put("result", resultObject);

    JsonTool.putStatusJson(status, jsonObject);
    mv.addObject("json", jsonObject.toString());
    return mv;
  }
  /**
   * 将集合元素封装成json对象并生成返回视图
   *
   * @param listJson 要封装的JSONObject集合
   * @param status 此次操作状态
   * @return:返回数据格式 { status:1, message:"ok", result:{ count:2, data:[
   *     {id:"2353sdkfhosdf",name:boat.jpg,type=1,savepath:"http://172.19.68.77:8080/zhushou/images/logo.jpg"},
   *     {id:"2353sdkfhosdf",name:boat.jpg,type=1,savepath:"http://172.19.68.77:8080/zhushou/images/logo.jpg"},
   *     <p>] } }
   */
  public static ModelAndView generateModelAndView(List<JSONObject> listJson, MyStatus status) {
    ModelAndView mv = new ModelAndView(PageViewConstant.JSON);

    // 整个json
    JSONObject jsonObject = new JSONObject();
    // result json
    JSONObject resultObject = new JSONObject();
    // 数组json
    JSONArray jsonArray = new JSONArray();

    if (listJson != null) {
      for (JSONObject entity : listJson) jsonArray.add(entity);
    }
    resultObject.put("count", jsonArray.size());
    resultObject.put("data", jsonArray);

    jsonObject.put("result", resultObject);

    JsonTool.putStatusJson(status, jsonObject);
    mv.addObject("json", jsonObject.toString());
    return mv;
  }
 /**
  * 将集合元素封装成json格式数据
  *
  * @param list 要封装的数组集合
  * @param status 状态标识
  * @return 返回数据类似如下格式:data中的内容就是list集合中的内容,count表示data中的条数,也就是list集合中数据数 { status:1, message:"ok",
  *     result:{ count:2, data:[
  *     <p>{id:"2353sdkfhosdf",name:boat.jpg,type=1,savepath:"http://172.19.68.77:8080/zhushou/images/logo.jpg"},
  *     {id:"2353sdkfhosdf",name:boat.jpg,type=1,savepath:"http://172.19.68.77:8080/zhushou/images/logo.jpg"},
  *     <p>] } }
  */
 @Deprecated
 public static <T> String createJson(List<T> list, MyStatus status) {
   return JsonTool.createJson(list, null, status);
 }