2015年1月18日 星期日

JSON 與 Map 互轉 (使用 GSON)


import java.lang.reflect.Type;
import java.util.Map;

import com.google.gson.Gson;
import com.google.gson.JsonSyntaxException;

public class JsonUtils {
  
    public static Map<String, Object> fromJson(String json) {
        return fromJson(json, Map.class);
    }

    public static String toJson(Object src) {

        Gson gson = new Gson();
        return gson.toJson(src);
    }

    public static <T> T fromJson(String json, Type typeOfT) {
        Gson gson = new Gson();
        return (T) gson.fromJson(json, typeOfT);
    }
   
    public static boolean isValidJson(String json) {
        try {
            fromJson(json);
            return true;
        } catch(JsonSyntaxException ex) {
            return false;
        }
    }
   
    public static boolean isValidJson(String json, Type typeOfT) {
        try {
            fromJson(json, Map.class);
            return true;
        } catch(JsonSyntaxException ex) {
            return false;
        }
    }
}

使用方式:
[JSON Map]
Map<String, Object> retMap = JsonUtils.fromJson(jsonData);
傳入 JSON 字串 jsonData ==> JsonUtils.fromJson(jsonData)
回傳型態為 Map<String, Object> map: retMap

[Map JSON]
String jsonString = JsonUtils.toJson(mapData);
傳入 型態為 Map<String, Object> map mapData ==> JsonUtils.toJson(mapData);
回傳 JSON 字串 jsonString

沒有留言:

張貼留言