`

FastJson--阿里巴巴公司开源的速度最快的Json和对象转换工具

    博客分类:
  • json
 
阅读更多
这是关于FastJson的一个使用Demo,在Java环境下验证的

[java] view plaincopy在CODE上查看代码片派生到我的代码片

    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; 
        } 
    } 

[java] view plaincopy在CODE上查看代码片派生到我的代码片

    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; 
        } 
    } 

[java] view plaincopy在CODE上查看代码片派生到我的代码片

    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; 
        } 
    } 

[java] view plaincopy在CODE上查看代码片派生到我的代码片

    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
分享到:
评论

相关推荐

    fastjson-1.2.38的官方jar包合集【fastjson-1.2.38.jar,fastjson-1.2.38-sources.jar】

    Fastjson是阿里巴巴开源的一款高性能的JSON解析和生成库,它在Java社区中广泛被使用,特别是在处理JSON数据的场景下。这个压缩包集合包含了Fastjson的1.2.38版本,具体包括三个重要的组成部分:`fastjson-1.2.38.jar...

    fastjson-1.2.38的jar包

    Fastjson是阿里巴巴开源的一个高性能的JSON库,广泛应用于Java开发中,尤其在数据交换、序列化与反序列化等方面表现出色。Fastjson-1.2.38是该库截至2017年9月10日的最新版本,它包含了三个主要的组件:`fastjson-...

    fastjson-1.1.34.android.jar最新版本

    【Fastjson】是阿里巴巴开发的一款高性能的JSON库,主要用于Java平台。它提供了非常方便的JSON对象解析和生成功能,使得在Java程序中处理JSON数据变得轻而易举。Fastjson的最新版本为`1.1.34.android`,特别针对...

    fastjson-1.2.78.jar.zip

    Fastjson是阿里巴巴开源的一个高性能的JSON库,它具有轻量级、快速、易用的特点,广泛应用于JavaWeb开发中。在标题提及的"fastjson-1.2.78.jar.zip"压缩包中,包含的就是Fastjson的1.2.78版本的JAR文件,这个文件...

    fastjson-阿里巴巴

    Fastjson是阿里巴巴开发的一款高性能的Java JSON库,它能够实现Java对象与JSON数据之间的快速转换。作为一款轻量级的工具,Fastjson在处理大量JSON数据时表现出了极高的效率,被广泛应用于服务器端和移动应用开发中...

    最新版 fastjson-1.2.68.jar

    Fastjson是阿里巴巴开源的一款高性能的Java JSON库,它以其简洁的API、卓越的性能以及对Java对象与JSON数据之间的无缝转换而备受赞誉。在最新的版本1.2.68中,Fastjson继续提供稳定性和兼容性的提升,确保开发者能够...

    fastjson-1.2.70_JSON_

    Fastjson是阿里巴巴开源的一个高性能的JSON库,专为Java设计,它能快速解析和生成JSON格式的数据。在这个“fastjson-1.2.70”版本中,我们将深入探讨Fastjson的关键特性和使用方法。 首先,Fastjson的性能是其主要...

    fastjson-1.1.33.jar json所使用的jar包

    为了方便地处理JSON数据,阿里巴巴开源了一款高效且易用的库——Fastjson。本文将详细探讨Fastjson-1.1.33.jar,这个版本的Fastjson在JSON解析和生成方面的性能表现及其关键特性。 Fastjson是阿里巴巴的一个高性能...

    fastjson-1.2.7.jar

    Fastjson是阿里巴巴开源的一款强大的JSON解析库,它支持JSON到Java对象的映射,以及Java对象到JSON字符串的转换。其主要优势在于解析速度快,内存消耗低,对各种Java数据类型的支持全面,广泛应用于Web服务、数据...

    fastjson-1.2.31的官方jar包合集dccdcdcdcd,,,cdcdcd.rar

    Fastjson是阿里巴巴开源的一款高性能的JSON库,广泛应用于Java开发中,用于JSON与Java对象之间的相互转换。本篇文章将详细探讨Fastjson的1.2.31版本,特别关注其官方发布的jar包集合,以及如何利用这些资源进行开发...

    fastjson-1.2.46.zip

    Fastjson是阿里巴巴开源的一个高性能的JSON库,它在Java世界中被广泛使用,为开发者提供了快速、便捷的JSON解析和生成功能。Fastjson-1.2.46是其一个重要的版本,本文将围绕这个版本的特性、使用方法以及性能优化...

    fastjson-1.2.68jar包.rar

    Fastjson是阿里巴巴开源的一个高性能的JSON库,它在Java世界中扮演着重要的角色,尤其在处理数据交换与序列化方面。本文将围绕“fastjson-1.2.68jar包”展开,详细探讨其功能特性、使用方法以及在实际应用中的重要性...

    fastjson-1.2.9.jar.7z

    Fastjson是阿里巴巴开源的一款高性能的Java JSON库,它能够帮助开发者在Java程序中实现JSON对象与Java对象之间的相互转换。Fastjson以其出色的性能、易用性和丰富的功能,广泛应用于各种Java项目中,尤其是在大数据...

    阿里巴巴json解析 fastjson.jar

    Fastjson是阿里巴巴开源的一个Java语言编写的高性能功能完备的JSON库。它的设计目标是提供快速的性能,使JSON操作如同Java对象一样简单。Fastjson不仅支持将Java对象转换为JSON字符串,还能将JSON内容转换为对应的...

    阿里巴巴开源fastjson

    Fastjson,作为阿里巴巴开源的一款高效、功能强大的JSON库,它在Java开发领域中被广泛使用。JSON(JavaScript Object Notation)作为一种轻量级的数据交换格式,因其简洁明了的特性,深受开发者喜爱。Fastjson正是...

    fastjson-1.2.2.jar

    而Fastjson作为阿里巴巴开源的一个高性能的JSON库,因其解析速度极快、使用简单而备受开发者喜爱。本文将详细探讨Fastjson的核心特性、使用方法以及优化技巧。 Fastjson-1.2.2版本是Fastjson的一个里程碑,它在性能...

    Fastjson-一款高性能的json解析工具

    Fastjson是阿里巴巴开发的一款高效的Java语言编写的JSON解析库,其设计目标是处理速度极快,内存占用少,使得在Java应用中处理JSON数据变得轻而易举。JSON(JavaScript Object Notation)作为一种轻量级的数据交换...

    jar包资源——fastjson-1.2.47.zip

    Fastjson是阿里巴巴开发的一个开源的JSON解析和生成库,它在Java社区中广泛使用,特别是在处理JSON数据时。这个资源包"fastjson-1.2.47.zip"包含了Fastjson的特定版本1.2.47的jar文件,以及一个ReadMe.txt文档,可能...

    fastjson-master源码

    Fastjson是阿里巴巴开源的一款高性能的Java JSON库,它能够实现JSON和Java对象之间的快速转换。在Web开发中,数据交换格式的选择至关重要,JSON因其简洁、易于理解和处理的特性,成为了首选。Fastjson以其卓越的性能...

    fastjson-1.2.9包文件

    FastJson,作为一个高效的JSON库,是阿里巴巴开源的一款强大而便捷的工具包,特别适用于Java平台上的JSON序列化与反序列化操作。在标题“fastjson-1.2.9包文件”中提到的版本1.2.9,代表了该库的一个稳定发布版本,...

Global site tag (gtag.js) - Google Analytics