zoukankan      html  css  js  c++  java
  • FastJson--阿里巴巴公司开源的速度最快的Json和对象转换工具

    这是关于FastJson的一个使用Demo,在Java环境下验证的
     

    代码片段

    1. [文件] User.java ~ 243B     下载(60)     

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    class User{
        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;
        }
    }

    2. [文件] Group.java ~ 458B     下载(47)     

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    import java.util.ArrayList;
    import java.util.List;
     
    class Group{
        private int id;
        private String name;
        private List<User> list = new ArrayList<User>();
        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;
        }
        public List<User> getList() {
            return list;
        }
        public void setList(List<User> list) {
            this.list = list;
        }
    }

    3. [文件] Weibo.java ~ 359B     下载(46)     

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    class Weibo {
        private String id;
        private String city;
     
        public Weibo(String id, String city) {
            this.id = id;
            this.city = city;
        }
     
        public Weibo() {
        }
     
        public String getId() {
            return id;
        }
     
        public void setId(String id) {
            this.id = id;
        }
     
        public String getCity() {
            return city;
        }
     
        public void setCity(String city) {
            this.city = city;
        }
    }

    4. [文件] JsonDemo.java ~ 7KB     下载(62)     跳至 [1] [2] [3] [4] [全屏预览]

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
     
    import com.alibaba.fastjson.JSON;
    import com.alibaba.fastjson.JSONArray;
    import com.alibaba.fastjson.JSONObject;
     
    //下面是FastJson的简介:常用的方法!
    //  Fastjson API入口类是com.alibaba.fastjson.JSON,常用的序列化操作都可以在JSON类上的静态方法直接完成。
    //  public static final Object parse(String text); // 把JSON文本parse为JSONObject或者JSONArray
    //  public static final JSONObject parseObject(String text); // 把JSON文本parse成JSONObject   
    //  public static final <T> T parseObject(String text, Class<T> clazz); // 把JSON文本parse为JavaBean
    //  public static final JSONArray parseArray(String text); // 把JSON文本parse成JSONArray
    //  public static final <T> List<T> parseArray(String text, Class<T> clazz); //把JSON文本parse成JavaBean集合
    //  public static final String toJSONString(Object object); // 将JavaBean序列化为JSON文本
    //  public static final String toJSONString(Object object, boolean prettyFormat); // 将JavaBean序列化为带格式的JSON文本
    //  public static final Object toJSON(Object javaObject); 将JavaBean转换为JSONObject或者JSONArray(和上面方法的区别是返回值是不一样的)
     
    /**
     * 这是关于FastJson的一个使用Demo,在Java环境下验证的;
     * 使用的时候可以参照这个例子进行回忆!
     * 备注:下面写的Json格式的数据"前面的,意思是告诉编译器忽略掉它后面的"。
     * 后面定义有三个类:User、Group、Weibo
     * @author liuzhao
     */
    public class JsonDemo {
     
        public static void main(String[] args) {
             
            json2JsonObjectM1();//将Json文本数据信息转换为JsonObject对象,然后利用键值对的方式获取信息
            json2BeanM2();//将Json文本数据转换为JavaBean数据!
            json2JSONArrayM3();//将json数据转化为JSONArray:
            json2JavaBeanM4();//将JSON文本转换为JavaBean的集合;转换为单纯的1个Object:parseObject(String text, Class<T> clazz);
            bean2JsonM5();//将JavaBean转换为Json格式的数据/Json文本 用户数据的传递:例如上传服务器
            bean2JSONObjectM6();//将JavaBean转换为JSON对象
            complexExampleM7();//一个相对复杂的例子:
            complex2JsonM8();//一个复杂的Object到Json的Demo
            complexMap2JsonM9();//将Map数据转换为JsonString的Demo;这个对RedBoy服务端不就直接破了嘛!
        }
     
        /**
         * 将Json文本数据信息转换为JsonObject对象,然后利用键值对的方式获取信息
         */
        private static void json2JsonObjectM1() {
            //一个JsonObject文本数据
            String s = "{"name":"liuzhao"}";
            //将JsonObject数据转换为Json
            JSONObject object = JSON.parseObject(s);
            //利用键值对的方式获取到值
            System.out.println(object.get("name"));
            /**
             * 打印:
             * liuzhao
             */
        }
         
        /**
         * 将Json文本数据转换为JavaBean数据!
         * 需要注意的是:这时候的Json文本信息中的键的名称必须和JavaBean中的字段名称一样!键中没有的在这个JavaBean中就显示为null!
         */
        private static void json2BeanM2() {
            String s = "{"id":"0375","city":"平顶山"}";
            //一个简单方便 的方法将Json文本信息转换为JsonObject对象的同时转换为JavaBean对象!
            Weibo weibo = JSON.parseObject(s, Weibo.class);//Weibo类在下边定义
            System.out.println(weibo.getId());
            System.out.println(weibo.getCity());
            //打印的结果     0375
            //              平顶山
        }
     
     
        /**
         * 将Map类型的数据转换为JsonString
         */
        private static void complexMap2JsonM9() {
            Group group = new Group();
            group.setId(1);
            group.setName("group");
             
            User user1 = new User();
            user1.setId(2);
            user1.setName("user1");
     
            User user2 = new User();
            user2.setId(3);
            user2.setName("user2");
            group.getList().add(user1);
            group.getList().add(user2);
             
            Map<Integer, Object> map = new HashMap<Integer,Object>();
            map.put(1, "No.1");
            map.put(2, "No.2");
            map.put(3, group.getList());
             
            String jsonString = JSON.toJSONString(map);
            System.out.println(jsonString);
            /**
             *  输出:{1:"No.1",2:"No.2",3:[{"id":2,"name":"user1"},{"id":3,"name":"user2"}]}
             */
        }
     
        /**
         * 由一个复杂的Object到Json的Demo
         */
        private static void complex2JsonM8() {
            Group group = new Group();
            group.setId(1);
            group.setName("group");
             
            User user1 = new User();
            user1.setId(2);
            user1.setName("user1");
     
            User user2 = new User();
            user2.setId(3);
            user2.setName("user2");
            group.getList().add(user1);
            group.getList().add(user2);
            String jsonString = JSON.toJSONString(group);
            System.out.println(jsonString);
            /**
             *  输出:{"id":1,"list":[{"id":2,"name":"user1"},{"id":3,"name":"user2"}],"name":"group"}
             */
        }
     
        /**
         * 一个相对复杂的例子:
         * JSON文本数据:
         *      首先是JSONObject,转换为JSONArray;
         *      然后将JSONArray转换为JavaBean
         */
        private static void complexExampleM7() {
            String s = "{js:[{id:"110000","city":"北#001京市"},{id:"110000","city":"北#002京市"}"
                    + ",{id:"110000","city":"北#002京市"},{id:"110000","city":"北#002京市"},"
                    + "{id:"110000","city":"#006北#005京市"},"
                    + "{id:"110000","city":"北#002京市"},"
                    + "{id:"110000","city":"北#002京市"},{id:"120000","city":"天#009津市"}]}";
             
            JSONObject object = JSON.parseObject(s);
            Object jsonArray = object.get("js");
            System.out.println(jsonArray);
            List<Weibo> list = JSON.parseArray(jsonArray+"", Weibo.class);
            for (Weibo weibo : list) {
                System.out.println(weibo.getCity());
            }
        }
     
        /**
         * 将JavaBean转换为JSON对象
         */
        private static void bean2JSONObjectM6() {
            Weibo weibo = new Weibo("0373", "洛阳");
            JSONObject json = (JSONObject) JSON.toJSON(weibo);
            System.out.println(json.get("id"));
            /**
             * 打印:
             * 0373
             */
        }
     
        /**
         * 将JSON文本转换为JavaBean的集合;
         * 内部实现肯定是:首先转换为JSONArray,然后再转换为List集合
         */
        private static void json2JavaBeanM4() {
            String s = "[{"id":"0375","city":"平顶山"},{"id":"0377","city":"南阳"}]";
            List<Weibo> list = JSON.parseArray(s, Weibo.class);
            for (Weibo weibo : list) {
                System.out.println(weibo.getCity());
            }
            /**
             * 打印:
             * 平顶山
             * 南阳
             */
        }
     
        /**
         * 将json数据转化为JSONArray:
         * 注意:获取到JSONArray之后(我们这里只是获取到JSONArray而不是JavaBean的List集合)
         * 获取JSONArray中的数据转换为String类型需要在外边加"";
         */
        private static void json2JSONArrayM3() {
            String s = "[{"id":"0375","city":"平顶山"},{"id":"0377","city":"南阳"}]";
            //将JSON文本转换为JSONArray
            JSONArray array = JSON.parseArray(s);
            //这行必须写:必须加上+"";不然会报出类型强转异常!
            String str = array.get(1)+"";
            System.out.println(array.get(0));
            JSONObject object = JSON.parseObject(str);
            System.out.println(object.get("id"));
            /**
             * {"city":"平顶山","id":"0375"}
                0377
             */
        }
     
     
        /**
         * 将JavaBean转换为Json格式的数据/Json文本
         * 用户数据的传递:例如上传服务器
         */
        private static void bean2JsonM5() {
            Weibo weibo = new Weibo("123456", "上海");
            String string = JSON.toJSONString(weibo);
            System.out.println(string);
            /**
             * 打印:
             * {"city":"上海","id":"123456"}
             */
        }
     
    }
     
     
  • 相关阅读:
    HttpWebRequest 的一个 异步封装
    AcWing 6 多重背包问题III【单调对列优化】
    AcWing 8. 二维费用的背包问题
    AcWing 1019. 庆功会
    P1421 小玉买文具
    P5709 【深基2.习6】Apples Prologue / 苹果和虫子
    P2181 对角线
    AcWing 1020. 潜水员
    AcWing 1013. 机器分配【分组背包+求方案数】
    AcWing 7. 混合背包问题
  • 原文地址:https://www.cnblogs.com/sopestar/p/4848468.html
Copyright © 2011-2022 走看看