zoukankan      html  css  js  c++  java
  • FastJson的基本用法----转

    1. [文件] User.java ~ 243B    

     
    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 

     
    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  

    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  

    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"}
             */
        }
     
    }

    转自:http://www.oschina.net/code/snippet_228315_35122

  • 相关阅读:
    对进程空间的认识
    自己实现智能指针
    实现一个string类
    常见问题总结
    pong game using ncurses
    知识梳理
    经典算法回顾
    自己实现more命令
    表的垂直拆分和水平拆分-zz
    MySQL索引原理及慢查询优化-zz
  • 原文地址:https://www.cnblogs.com/huhuuu/p/4952426.html
Copyright © 2011-2022 走看看