zoukankan      html  css  js  c++  java
  • 将java类的泛型集合转换成json对象

    一般用extjs开发传输都是用json比较多,这个将来大家也许会用到。。。

    ConvertJsonUtils.java

    package com.sunweb.util.jsonfactory;

    import java.util.List;

    import com.sunweb.util.jsonfactory.jsontools.JSONArray;
    import com.sunweb.util.jsonfactory.jsontools.JSONException;
    import com.sunweb.util.jsonfactory.jsontools.JSONObject;

    /**
    * @title 公共json数据格式转换
    * @author 贺彬
    */
    public class ConvertJsonUtils {

        public ConvertJsonUtils() {
            super();
        }

        /**
         * 功能:将泛型集合转换成分页json数据
         *
         * @param list
         *            泛型集合
         * @param countList
         *            数据集合的总行数
         * @return 分页json数据
         */
        public static String ConvertListToPageJson(List<?> list, int countList) {
            // 新建一个json数组
            JSONArray jsonArray = new JSONArray();
            // 新建一个json对象
            JSONObject jsonObject = null;
            // 遍历泛型集合
            for (Object object : list) {
                jsonObject = new JSONObject(object);
                jsonArray.put(jsonObject);
            }
            // 转换数据格式
            String json = jsonArray.toString();
            // 拼接字符串
            StringBuffer sb = new StringBuffer();
            sb.append("{"totalCount":");
            sb.append(countList);
            sb.append(","rows":");
            sb.append(json);
            sb.append("}");
            String jsonString = sb.toString();
            return jsonString;
        }
        /**
         * 功能:将泛型集合转换成分页json数据
         *
         * @param list
         *            泛型集合
         * @param countList
         *            数据集合的总行数
         * @return 分页json数据
         */
        public static String ConvertListToPageJson(List<?> list){
            // 新建一个json数组
            JSONArray jsonArray = new JSONArray();
            // 新建一个json对象
            JSONObject jsonObject = null;
            // 遍历泛型集合
            for (Object object : list) {
                jsonObject = new JSONObject(object);
                jsonArray.put(jsonObject);
            }
            // 转换数据格式
            String json = jsonArray.toString();
            // 拼接字符串
            JSONObject jn = new JSONObject();
            try {
                jn.put("records", jsonArray);
            } catch (JSONException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            return jn.toString();
        }

    }

    Test.java

    package com.sunweb.util.jsonfactory;

    import java.util.ArrayList;
    import java.util.List;

    public class Test {

        /**
         * @param args
         */
        public static void main(String[] args) {
            List<Student> list = new ArrayList<Student>();  //创建一个泛型的list集合
            Student stu = null;
            for(int i=0;i<20;i++){
                stu = new Student();
                stu.setId(i);
                stu.setName("贺兵"+i);
                //模拟有20个对象的list集合
                list.add(stu);
            }
           //现在将集合转成json不分页
           String json1 = ConvertJsonUtils.ConvertListToPageJson(list);
            System.out.println(json1);
            //分页,总数20条
           String json2 = ConvertJsonUtils.ConvertListToPageJson(list, 20);
            System.out.println(json2);
        }

    Student.java

    package com.sunweb.util.jsonfactory;

    public class Student {
        private int id;
        private String name;
        public int getId() {
            return id;
        }
        public void setId(int id) {
            this.id = id;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
    }
    http://outofmemory.cn/code-snippet/4036/jiang-java-class-generic-set-turn-huancheng-json-object

  • 相关阅读:
    使用npm安装一些包失败了的看过来(npm国内镜像介绍)(解决生成空的abp模板项目一直卡在还原cpm包中)
    .NET CORE 发布到IIS问题 HTTP ERROR 500.30
    .NET Core默认不支持GB2312,使用Encoding.GetEncoding(“GB2312”)的时候会抛出异常。
    .net c# 文件分片/断点续传之下载--客户端
    aspnetcore 实现断点续传
    C# 反射获取属性值、名称、类型以及集合的属性值、类型名称
    C# 3Des两种加密方式 (对应java中的desede/CBC/PKCS5Padding加密)
    Asp.NetCore3.1中多次读取Request.Body
    ASP.NET Core 2.0系列学习笔记-DI依赖注入
    C# Newtonsoft.Json JObject合并对象整理
  • 原文地址:https://www.cnblogs.com/ae6623/p/4416358.html
Copyright © 2011-2022 走看看