1. 程式人生 > >JAVA_Gson解析json工具類封裝

JAVA_Gson解析json工具類封裝

package com.springSecurity.gson;


import java.util.ArrayList;
import java.util.List;
import java.util.Map;


import com.google.gson.Gson;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonParser;
import com.google.gson.reflect.TypeToken;


/**
 * 
 * @author jiangminyan
 * @date   2016年10月17日
 */


public class GsonUtil {


private static Gson gson = null;
    static {
        if (gson == null) {
            gson = new Gson();
        }
    }


    private GsonUtil() {
    }


    /**
     * 將object物件轉成json字串
     * 
     * @param object
     * @return
     */
    public static String GsonString(Object object) {
        String gsonString = null;
        if (gson != null) {
            gsonString = gson.toJson(object);
        }
        return gsonString;
    }


    /**
     * 將gsonString轉成泛型bean
     * 
     * @param gsonString
     * @param cls
     * @return
     */
    public static <T> T GsonToBean(String gsonString, Class<T> cls) {
        T t = null;
        if (gson != null) {
            t = gson.fromJson(gsonString, cls);
        }
        return t;
    }


   /**
     * 轉成list
     * 泛型在編譯期型別被擦除導致報錯
     * @param gsonString
     * @param cls
     * @return
     */
    public static <T> List<T> GsonToList(String gsonString, Class<T> cls) {
        List<T> list = null;
        if (gson != null) {
            list = gson.fromJson(gsonString, new TypeToken<List<T>>() {
            }.getType());
        }
        return list;
    }


    /**
     * 轉成list
     * 解決泛型問題
     * @param json
     * @param cls
     * @param <T>
     * @return
     */
    public static <T> List<T> jsonToList(String json, Class<T> cls) {
        Gson gson = new Gson();
        List<T> list = new ArrayList<T>();
        JsonArray array = new JsonParser().parse(json).getAsJsonArray();
        for(final JsonElement elem : array){
            list.add(gson.fromJson(elem, cls));
        }
        return list;
    }




    /**
     * 轉成list中有map的
     * 
     * @param gsonString
     * @return
     */
    public static <T> List<Map<String, T>> GsonToListMaps(String gsonString) {
        List<Map<String, T>> list = null;
        if (gson != null) {
            list = gson.fromJson(gsonString,
                    new TypeToken<List<Map<String, T>>>() {
                    }.getType());
        }
        return list;
    }


    /**
     * 轉成map的
     * 
     * @param gsonString
     * @return
     */
    public static <T> Map<String, T> GsonToMaps(String gsonString) {
        Map<String, T> map = null;
        if (gson != null) {
            map = gson.fromJson(gsonString, new TypeToken<Map<String, T>>() {
            }.getType());
        }
        return map;
    }

}

相關推薦

JAVA_Gson解析json工具封裝

package com.springSecurity.gson; import java.util.ArrayList; import java.util.List; import java.util.Map; import com.google.gson.Gson

Android Gson解析json工具封裝

pac spa google lis object sonar andro on() div package com.springSecurity.gson; import java.util.ArrayList; import java.util.List

fastjson解析json工具

    這個是比較常用的解析json的工具類,用的是Alibaba的fastjson,功能很簡單,就是把object變為json,把json變為object和list package com.ab.

常用JSON工具JsonUtil封裝

前言 專案中經常會有String轉Object以及Object轉Json字串的需求,故封裝一個常用Json工具類 Maven依賴 <dependency> <groupId>org.codehau

Java封裝JSON工具

在JAVA中用json-lib-2.3-jdk15.jar包中提供了JSONObject和JSONArray基類,用於JSON的序列化和反序列化的操作。但是我們更習慣將其進一步封裝,達到更好的重用。 封裝後的JSON工具類JSONUtils.java程式碼如下: im

AsyncTask解析(下)——實現自定義AsyncTask網路傳輸工具封裝

在上文: AsyncTask解析(上)——原理分析與超簡單demo實現中已經對AsyncTask的實現原理以及原始碼流程進行了一定的分析,相信大家已經基本熟悉了AsyncTask內部實現網路傳輸的呼叫順序以及過程細節,最後還寫出了一個比較簡單的Demo實踐,十分簡單易懂相信

jdbc工具封裝

ram ive while lock ins connect cat stack sys 封裝 package util; import java.sql.Connection; import java.sql.DriverManager; import

Android經常使用工具封裝---SharedPreferencesUtil

保存數據 n) ng- -a 操作 ext.get 名稱 simple tint SharedPreferences經常使用於保存一些簡單的數據,如記錄用戶操作的配置等,使用簡單。 public class SharedPreferencesUtil { //存

json工具

stat imp json2 return color clas java arr div import net.sf.json.JSONArray; import net.sf.json.JSONObject; import java.util.*; public

JSON工具庫: alibaba/fastjson 使用記錄

-c post lin 序列 tro hive 問題 www. .net JSON工具類庫: alibaba/fastjson 使用記錄 一、了解JSON JSON標準規範中文文檔: http://www.json.org/json-zh.html 最佳實踐:http

jdbc 工具 封裝數據庫連接

on() mage stream res jdb com statement stack pos 首先,創建一個文件db.properties,用於保存數據庫連接信息。 編寫代碼連接數據庫 package com.jdbc; import java.io.IO

工具封裝之--BaseController

OS sig pen ring tty author vax state IT package cn.xxx.base; import cn.xxx.gecustomer.beans.GeCustomer; import cn.xxx.gecustomer.beans.

強大的Java Json工具

bsp input ext line bject style shm 工具類 tac 轉自: https://blog.csdn.net/u014676619/article/details/49624165 import java.io.Buffered

9月30 json工具

span utils iba bject get oob class print parse import java.util.List; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSO

HttpClientUntils工具的使用及註意事項(包括我改進的工具和Controller端的註意事項【附 Json 工具】)

string類 匹配 frame json .net hash 中文 .data 請求方法 HttpClient工具類(我改過): package com.taotao.httpclient; import java.io.IOException; import j

Android Sqlite 工具封裝

鑑於經常使用 Sqlite 資料庫做資料持久化處理,進行了一點封裝,方便使用。 該封裝類主要支援一下功能 支援多使用者資料儲存 支援 Sqlite資料庫升級 支援傳入 Sql 語句建表 支援 SQLiteDatabase 基本操作。比如:execSQL、ra

執行緒池工具封裝

一、 為什麼要使用執行緒池: 1.頻繁建立和銷燬執行緒耗資源,耗時間,換句話說,執行緒池就能節約資源,節約時間。 2.有的執行緒執行任務的時間甚至比建立和銷燬執行緒的時間還短。 二 、執行緒池的作用: 執行緒池是預先建立執行緒的一種技術。執行緒池在還沒有任務到來之前,建立一定數量的執行緒,加

json工具JsonUtils

package com.ziyun.pop.common.utils; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.utility.DoubleSerialize

工具封裝的獲取網路資料+網路圖片+三級緩衝圖片的方法

呼叫:NewUtils .getInstance(content).方法名呼叫其中的方法 package com.example.renzhili20181106; import android.annotation.SuppressLint; import android.

工具封裝獲取網路資料+網路圖片的方法

package com.bwie.renzhili; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.AsyncTask; import com.google.