歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Json應用案例之FastJson

Json應用案例之FastJson

日期:2017/3/1 9:30:34   编辑:Linux編程

這幾天在網上找關於Json的一些案例,無意當中找到了一個我個人感覺比較好的就是阿裡巴巴工程師寫的FastJson。

package com.jerehedu.fastjson;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Vector;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.jerehedu.entity.Userinfo;



/**
 * fastjson 是一個性能很好的 Java 語言實現的 JSON 解析器和生成器,來自阿裡巴巴的工程師開發。 主要特點:
 * 1.快速FAST(比其它任何基於Java的解析器和生成器更快,包括jackson) 強大(支持普通JDK類包括任意Java Bean
 * 2.Class、Collection、Map、Date或enum) 零依賴(沒有依賴其它任何類庫除了JDK)
 * 
 */
public class TestFastJson {

    public static void main(String[] args) {
        String json = "{\"name\":\"chenggang\",\"age\":24}";
        String arrayAyy = "[[\'馬雲',50],null,[\'馬化騰',30]]";
        Entity2json("zhangsan", 24);
        list2Json();
        Complexdata();
        Deserialization(json);
        DateFormate(new Date());
        Json2Eetity(json);
        String2JSONArray(arrayAyy);
    }

    // 實體轉為Json
    public static void Entity2json(String name, int age) {
        Userinfo info = new Userinfo(name, age);
        String str_json = JSON.toJSONString(info); //
        System.out.println("實體轉化為Json" + str_json);
    }

運行結果為:

直接將我們的實體轉化為了Json格式。

    // list轉Json
    public static void list2Json() {
        List<Userinfo> list = new ArrayList<Userinfo>();
        Userinfo userinfo1 = new Userinfo("lisi", 15);
        Userinfo userinfo2 = new Userinfo("wangwu", 16);
        list.add(userinfo1);
        list.add(userinfo2);
        String json = JSON.toJSONString(list, true);
        System.out.println("List集合轉json格式字符串 :" + json);
    }
運行結果為:
 

      // 字符數組轉化為JSon
    private static void String2JSONArray(String arrayAyy) {
        JSONArray array = JSONArray.parseArray(arrayAyy);
        System.out.println("數組:" + array);
        System.out.println("數組長度: " + array.size());
        Collection nuCon = new Vector();
        nuCon.add(null);
        array.removeAll(nuCon);
        System.out.println("數組:" + array);
        System.out.println("數組長度: " + array.size());
    }

運行結果為:

        // 復雜數據類型
    public static void Complexdata() {
        HashMap<String, Object> map = new HashMap<String, Object>();
        map.put("username", "zhangsan");
        map.put("age", 24);
        map.put("sex", "男");



        // map集合
        HashMap<String, Object> temp = new HashMap<String, Object>();
        temp.put("name", "xiaohong");
        temp.put("age", "23");
        map.put("girlInfo", temp);

        // list集合
        List<String> list = new ArrayList<String>();
        list.add("爬山");
        list.add("騎車");
        list.add("旅游");
        map.put("hobby", list);
        String jsonString = JSON.toJSONString(map);
        System.out.println("復雜數據類型:" + jsonString);
    }

運行結果為:

復雜數據類型:{"age":24,"girlInfo":{"age":"23","name":"xiaohong"},"hobby":["爬山","騎車","旅游"],"sex":"男","username":"zhangsan"}

    public static void Deserialization(String json) {
        Userinfo userInfo = JSON.parseObject(json, Userinfo.class);
        System.out.println("姓名是:" + userInfo.getName() + ", 年齡是:"
                + userInfo.getAge());
    }

  解析Json字符串,運行結果為:

    // 格式話日期
    public static void DateFormate(Date date) {
        System.out.println("輸出毫秒值:" + JSON.toJSONString(date));
        System.out.println("默認格式為:"
                + JSON.toJSONString(date,
                        SerializerFeature.WriteDateUseDateFormat));
        System.out.println("自定義日期:"
                + JSON.toJSONStringWithDateFormat(date, "yyyy-MM-dd",
                        SerializerFeature.WriteDateUseDateFormat));
    }

格式化日期,運行結果為:

    // Json轉為實體
    private static void Json2Eetity(String json) {
        Userinfo userInfo = JSON.parseObject(json, Userinfo.class);
        System.out.println("輸出對象的地址:" + userInfo.toString());
        System.out.println("輸出對象的名字:" + userInfo.getName());
    }
}

運行結果為:

  FastJson還是���較好用的一個解析格式,不管是轉化為Json,還是解析Json。Github地址為https://github.com/AlibabaTech/fastjson。

--------------------------------------分割線 --------------------------------------

Struts中異步傳送XML和JSON類型的數據 http://www.linuxidc.com/Linux/2013-08/88247.htm

Linux下JSON庫的編譯及代碼測試 http://www.linuxidc.com/Linux/2013-03/81607.htm

jQuery 獲取JSON數據[$.getJSON方法] http://www.linuxidc.com/Linux/2013-03/81673.htm

用jQuery以及JSON包將表單數據轉為JSON字符串 http://www.linuxidc.com/Linux/2013-01/77560.htm

在C語言中解析JSON配置文件 http://www.linuxidc.com/Linux/2014-05/101822.htm

--------------------------------------分割線 --------------------------------------

Copyright © Linux教程網 All Rights Reserved