zoukankan      html  css  js  c++  java
  • FastJson处理Map List 对象

     Fastjson是一个Java语言编写的高性能功能完善的JSON库。

    Fastjson是一个Java语言编写的JSON处理器,由阿里巴巴公司开发。

    1、遵循http://json.org标准,为其官方网站收录的参考实现之一。

    2、功能强大,支持JDK的各种类型,包括基本的JavaBean、Collection、Map、Date、Enum、泛型。

    3、无依赖,不需要例外额外的jar,能够直接跑在JDK上。

    4、开源,使用Apache License 2.0协议开源。http://code.alibabatech.com/wiki/display/FastJSON/Home

    5、具有超高的性能,java世界里没有其他的json库能够和fastjson可相比了。

    高性能

    fastjson采用独创的算法,将parse的速度提升到极致,超过所有json库,包括曾经号称最快的jackson。并且还超越了google的二进制协议protocol buf。

    支持标准

    Fastjson完全支持http://json.org的标准,也是官方网站收录的参考实现之一。

    功能强大

    支持各种JDK类型。包括基本类型、JavaBean、Collection、Map、Enum、泛型等。

    支持循环引用

    无依赖

    不需要例外额外的jar,能够直接跑在JDK上。

    支持范围广

    支持JDK 5、JDK 6、Android阿里云手机等环境。

    开源

    Apache License 2.0

    代码托管在github.org上,项目地址是 https://github.com/AlibabaTech/fastjson

    测试充分

    fastjson有超过1500个testcase,每次构建都会跑一遍,丰富的测试场景保证了功能稳定。

    获得fastjson

    下载

    http://code.alibabatech.com/mvn/releases/com/alibaba/fastjson/

    package ivyy.taobao.com.domain.fastjson;  
      
    import ivyy.taobao.com.entity.Student;  
      
    import java.util.ArrayList;  
    import java.util.Arrays;  
    import java.util.HashMap;  
    import java.util.List;  
    import java.util.Map;  
      
    import com.alibaba.fastjson.JSON;  
    import com.alibaba.fastjson.JSONObject;  
    import com.alibaba.fastjson.TypeReference;  
      
    /** 
     *@DEMO:json 
     *@Java:FastJSON.java 
     *@Date:2015-1-19上午10:28:12 
     *@Author:龙叔 
     *@Email:jilongliang@sina.com 
     *@Weibo:http://weibo.com/jilongliang 
     *@Version:1.0 
     *@Description:fastjson跟json-lib是语法很像,一句话说,所有json都差不多, 
     *大家伙也没不要研究那么多,懂一种自己最擅长而且熟悉能解决自己要解决的问题就OK, 
     *从fastjson反编译过来看 你就看到pom.xml里面的配置肯定能看到json-lib,此时能 
     *证明fastjson就是运用了json-lib! 
     * 
     *-------------------------------------------- 
     *      <dependency> 
                <groupId>org.codehaus.jackson</groupId> 
                <artifactId>jackson-smile</artifactId> 
                <version>1.9.9</version> 
                <scope>test</scope> 
            </dependency> 
    *-------------------------------------------- 
            <dependency> 
                <groupId>com.googlecode.json-simple</groupId> 
                <artifactId>json-simple</artifactId> 
                <version>1.1</version> 
                <scope>test</scope> 
            </dependency> 
    -------------------------------------------- 
    *        <dependency> 
                <groupId>net.sf.json-lib</groupId> 
                <artifactId>json-lib</artifactId> 
                <version>2.4</version> 
                <classifier>jdk15</classifier> 
                <scope>test</scope> 
            </dependency> 
    -------------------------------------------- 
     */  
    public class FastJSON {  
      
        /** 
         * @param args 
         */  
        public static void main(String[] args) throws Exception{  
            //string2Json();  
            //string2Object();  
            //string2List();  
              
            map2json();  
            map2JSON();  
        }  
          
          
        /** 
         * 通过fastjson把字符串转换成JSON数据 
         * TypeReference 
         */  
        public static void string2Json(){  
            StringBuffer buffer=new StringBuffer();  
            buffer.append("{");  
                buffer.append(""age":").append("27").append(",");  
                buffer.append(""userName":").append(""龙叔"").append(",");  
                buffer.append(""address":").append(""广东省云浮市"");  
            buffer.append("}");  
              
            String jsonText=buffer.toString();  
              
            JSONObject jobj=JSON.parseObject(jsonText);  
            String address=jobj.get("address").toString();  
            System.out.println(address);  
        }  
          
          
        /** 
         * 通过fastjson把字符串转换成对象 
         * TypeReference 
         */  
        public static void string2Object(){  
            StringBuffer buffer=new StringBuffer();  
            buffer.append("{");  
                buffer.append(""age":").append("27").append(",");  
                buffer.append(""userName":").append(""龙叔"").append(",");  
                buffer.append(""address":").append(""广东省云浮市"");  
            buffer.append("}");  
              
            String jsonText=buffer.toString();  
            //方法一 把json字符串转成Student对象  
            Student stu1 = JSON.parseObject(jsonText, new TypeReference<Student>(){});  
            //方法二 把json字符串转成Student对象  
            Student stu2 = JSON.parseObject(jsonText,Student.class);    
              
            System.out.println(stu1.getAddress());  
            System.out.println(stu2.getAddress());  
        }  
          
        /** 
         * 通过fastjson把字符串转换成泛型数组 
         * TypeReference 
         */  
        public static void string2List(){  
            StringBuffer buffer=new StringBuffer();  
            buffer.append("[{");  
                buffer.append(""age":").append("27").append(",");  
                buffer.append(""userName":").append(""龙叔"").append(",");  
                buffer.append(""address":").append(""广东省云浮市"");  
            buffer.append("}]");  
              
            String jsonText=buffer.toString();  
            //转成成数组  
            Student[] stu2 = JSON.parseObject(jsonText,new TypeReference<Student[]>(){});    
            List<Student> list = Arrays.asList(stu2);  
              
            for(Student st:list){  
                System.out.println(st.getAddress());  
            }  
              
            // 转换成ArrayList  
            ArrayList<Student> list2 = JSON.parseObject(jsonText, new TypeReference<ArrayList<Student>>(){});   
              
            for (int i = 0; i < list2.size(); i++) {  
                Student obj =(Student) list2.get(i);  
                System.out.println(obj.getAddress());  
            }  
              
        }  
        /** 
         * 通过fastjson把Map换成字符串转 
         */  
        public static void map2json(){  
            //创建一个Map对象  
             Map<String,String> map = new HashMap<String, String>();  
             map.put("username", "周伯通");  
             map.put("address", "广东省仙游谷");  
             map.put("age", "198");  
             String json = JSON.toJSONString(map,true); //转成JSON数据  
               
             Map<String,String> map1 = (Map<String,String>)JSON.parse(json);   
             //遍历数组数据  
             for (String key : map1.keySet()) {   
                System.out.println(key+":"+map1.get(key));   
            }   
        }  
        /** 
         * 通过fastjson把Map换成字符串转 
         */  
        public static void map2JSON() {  
            Map map = new HashMap();  
            map.put("username", "周伯通");  
            map.put("address", "广东省仙游谷");  
            map.put("age", "198");  
            String json = JSON.toJSONString(map);  
            Map map1 = JSON.parseObject(json);  
            for (Object obj : map.entrySet()) {  
                Map.Entry<String, String> entry = (Map.Entry<String, String>) obj;  
                System.out.println(entry.getKey() + "--->" + entry.getValue());  
            }  
        }   
    }  
    
    
    package ivyy.taobao.com.entity;  
      
    import java.io.Serializable;  
      
    /** 
     *@Author:liangjl 
     *@Date:2014-12-19 
     *@Version:1.0 
     *@Description: 
     */  
    public class Student implements Serializable{  
        private Integer age;  
        private String sex;  
        private String userName;  
        private String birthday;  
        private String address;  
        private String email;  
          
        public Integer getAge() {  
            return age;  
        }  
        public void setAge(Integer age) {  
            this.age = age;  
        }  
        public String getSex() {  
            return sex;  
        }  
        public void setSex(String sex) {  
            this.sex = sex;  
        }  
        public String getUserName() {  
            return userName;  
        }  
        public void setUserName(String userName) {  
            this.userName = userName;  
        }  
        public String getBirthday() {  
            return birthday;  
        }  
        public void setBirthday(String birthday) {  
            this.birthday = birthday;  
        }  
        public String getAddress() {  
            return address;  
        }  
        public void setAddress(String address) {  
            this.address = address;  
        }  
        public String getEmail() {  
            return email;  
        }  
        public void setEmail(String email) {  
            this.email = email;  
        }  
    }  
  • 相关阅读:
    POJ 3278 Catch That Cow
    Object-C 函数定义 -- 笔记
    Object-C变量作用域 -- 笔记
    Object-C 对象 (创建/销毁 对象)-- 笔记
    Object-C 类定义 -- 笔记
    JavaScript 自动分页插件 datatables
    JavaScript 随机数函数
    Server Job: error: String or binary data would be truncated. The statement has been terminated.
    SQL Server error "Xml data type is not supported in distributed queries" and workaround for it
    angularJS怎么实现与服务端的PHP进行数据交互
  • 原文地址:https://www.cnblogs.com/yixianyixian/p/7419009.html
Copyright © 2011-2022 走看看