fastjson

来源:互联网 发布:java下载和安装 编辑:程序博客网 时间:2024/06/15 07:51

转载自:http://blog.csdn.net/class_horse/article/details/48002969

一、简介

    Fastjson是一个Java语言编写的高性能功能完善的JSON库。它采用一种“假定有序快速匹配”的算法,把JSON Parse的性能提升到极致,是目前Java语言中最快的JSON库。Fastjson接口简单易用,已经被广泛使用在缓存序列化、协议交互、Web输出、Android客户端等多种应用场景。

二、特点

    1、高性能(速度最快

    2、功能强大

    3、无依赖

    4、开源(Apache License 2.0

三、实例

    1、demo

       

[java] view plaincopyprint?
  1. package com.cxhd.nmsp.util;  
  2.   
  3. import java.util.ArrayList;  
  4. import java.util.Date;  
  5. import java.util.HashMap;  
  6. import java.util.List;  
  7. import java.util.Map;  
  8.   
  9. import com.alibaba.fastjson.JSON;  
  10. import com.alibaba.fastjson.TypeReference;  
  11. import com.alibaba.fastjson.serializer.SerializerFeature;  
  12.   
  13. /** 
  14.  * fastJson实例 
  15.  *  
  16.  * @author liyulin 
  17.  * @version 1.0 2015年8月26日 下午2:13:48 
  18.  */  
  19. public class FastJsonDemo {  
  20.     public static void main(String[] args) {  
  21.         parseObject();  
  22.         parseMap();  
  23.         parseList();  
  24.           
  25.         fromObject();  
  26.         fromMap();  
  27.         fromList();  
  28.     }  
  29.       
  30.     /** 
  31.      * 字符串转Object对象 
  32.      */  
  33.     public static void parseObject(){  
  34.         String jsonObject = "{\"username\":\"admin\",\"password\":\"123456\",\"loginDate\":\"2015-08-26 10:22:23\"}";  
  35.         Login login = JSON.parseObject(jsonObject, Login.class);  
  36.           
  37.         System.out.println("字符串转对象(Object)==>"+login.getUsername()+":"+login.getPassword()+"\t"+login.getLoginDate());  
  38.     }  
  39.       
  40.     /** 
  41.      * 字符串转Map对象 
  42.      */  
  43.     public static void parseMap(){  
  44.         String jsonObject = "{\"username\":\"admin\",\"password\":\"123456\",\"loginDate\":\"2015-08-26 10:22:23\"}";  
  45.         Map<String, Object> login = JSON.parseObject(jsonObject, new TypeReference<Map<String, Object>>() {});  
  46.           
  47.         System.out.println("字符串转对象(Map)==>"+login.get("username")+":"+login.get("password")+"\t"+login.get("loginDate"));  
  48.     }  
  49.       
  50.     /** 
  51.      * 字符串转List对象  
  52.      */  
  53.     public static void parseList(){  
  54.         StringBuilder jsonList = new StringBuilder();  
  55.         jsonList.append("[");  
  56.         jsonList.append("{\"username\":\"admin\",\"password\":\"123456\",\"loginDate\":\"2015-08-26 10:22:23\"},");  
  57.         jsonList.append("{\"username\":\"admin\",\"password\":\"123456\",\"loginDate\":\"2015-08-26 10:22:23\"}");  
  58.         jsonList.append("]");  
  59.         List<Login> logins = JSON.parseArray(jsonList.toString(), Login.class);  
  60.           
  61.         System.out.println("\n字符串转对象(List)==>");  
  62.         for(Login login:logins){  
  63.             System.out.println(login.getUsername()+":"+login.getPassword()+"\t"+login.getLoginDate());  
  64.         }  
  65.     }  
  66.       
  67.     /** 
  68.      * Object对象转字符串 
  69.      */  
  70.     public static void fromObject(){  
  71.         Login login = new Login();  
  72.         login.setUsername("admin");  
  73.         login.setPassword("123456");  
  74.         login.setLoginDate(new Date());  
  75.           
  76.         String json = JSON.toJSONStringWithDateFormat(login, "yyyy-MM-dd hh:mm:ss", SerializerFeature.WriteDateUseDateFormat);  
  77.         System.out.println("\n对象(Object)转字符串==>"+json);  
  78.     }  
  79.       
  80.       
  81.     /** 
  82.      * Map对象转字符串 
  83.      */  
  84.     public static void fromMap(){  
  85.         Map<String, Object> map = new HashMap<String, Object>();  
  86.         map.put("username""admin");  
  87.         map.put("password""123456");  
  88.         map.put("loginDate"new Date());  
  89.           
  90.         String json = JSON.toJSONStringWithDateFormat(map, "yyyy-MM-dd hh:mm:ss", SerializerFeature.WriteDateUseDateFormat);  
  91.         System.out.println("\n对象(Map)转字符串==>"+json);  
  92.     }  
  93.       
  94.     /** 
  95.      * List对象转字符串 
  96.      */  
  97.     public static void fromList(){  
  98.         List<Login> logins = new ArrayList<Login>();  
  99.         for(int i=0; i<4; i++){  
  100.             Login login = new Login();  
  101.             login.setUsername("admin");  
  102.             login.setPassword("123456");  
  103.             login.setLoginDate(new Date());  
  104.               
  105.             logins.add(login);  
  106.         }  
  107.         String json = JSON.toJSONStringWithDateFormat(logins, "yyyy-MM-dd hh:mm:ss", SerializerFeature.WriteDateUseDateFormat);  
  108.         System.out.println("\n对象(List)转字符串==>"+json);  
  109.     }  
  110. }  

    2、Login.java

       

[java] view plaincopyprint?
  1. public class Login{  
  2.     private String username;  
  3.     private String password;  
  4.     private Date loginDate;  
  5.       
  6.     public String getUsername() {  
  7.         return username;  
  8.     }  
  9.       
  10.     public void setUsername(String username) {  
  11.         this.username = username;  
  12.     }  
  13.       
  14.     public String getPassword() {  
  15.         return password;  
  16.     }  
  17.       
  18.     public void setPassword(String password) {  
  19.         this.password = password;  
  20.     }  
  21.   
  22.     public Date getLoginDate() {  
  23.         return loginDate;  
  24.     }  
  25.   
  26.     public void setLoginDate(Date loginDate) {  
  27.         this.loginDate = loginDate;  
  28.     }  
  29. }  
0 0