gson 解析json

来源:互联网 发布:java io读取文件乱码 编辑:程序博客网 时间:2024/06/05 03:54
dependencies {    compile fileTree(dir: 'libs', include: ['*.jar'])    compile 'com.android.support:appcompat-v7:25.3.1'    compile 'com.android.support.constraint:constraint-layout:1.0.2'    compile 'com.google.code.gson:gson:2.8.1'}package com.example.wanghailong.gsonutil.Utils;import android.util.Log;import com.google.gson.Gson;import com.google.gson.JsonSyntaxException;import com.google.gson.reflect.TypeToken;import java.util.ArrayList;import java.util.List;import java.util.Map;/** * Created by wanghailong on 2017/8/15. * gson解析数据类,支持json to object , json to array , something to json */public class GsonUtil {    public static final String TAG = "mStudentJsonData";    private GsonUtil() {    }    private static class SingleGson {        private static Gson gson = new Gson();    }    private static Gson getInstance() {        return SingleGson.gson;    }    /**************************将Json数据解析成相应的对象**************************/    public static <T> T parseObj(String jsonData, Class<T> type) {        T result = null;        try {            result = getInstance().fromJson(jsonData, type);        } catch (JsonSyntaxException e) {            e.printStackTrace();        }        Log.e(TAG, jsonData + "\n" + (null == result ? "null" : result.toString()));        return result;    }    /*******************将Json数组解析成相应的对象List******************/public static <T> ArrayList<T> fromJsonList(String json, Class<T> cls) {    ArrayList<T> mList = null;    try {        mList = new ArrayList<T>();        JsonArray array = new JsonParser().parse(json).getAsJsonArray();        for (final JsonElement elem : array) {            mList.add(getInstance().fromJson(elem, cls));        }    } catch (JsonSyntaxException e) {        e.printStackTrace();    }    return mList;} /***********************将Map解析成相应的json*************************/ public static <T> String toJson(Map<String, T> map) { String jsonData = null; try { jsonData = getInstance().toJson(map); } catch (Exception e) { e.printStackTrace(); } Log.e(TAG, jsonData); return jsonData; } /***********************将List解析成相应的json*************************/ public static String toJson(List<?> list) { try { return getInstance().toJson(list); } catch (Exception e) { e.printStackTrace(); return null; } } /***********************将具体类解析成相应的json*************************/ public static String toJson(Object object) { try { return getInstance().toJson(object); } catch (Exception e) { e.printStackTrace(); return null; } }}