Json字符串处理

pom.xml

<dependency>
  <groupId>com.google.code.gson</groupId>
  <artifactId>gson</artifactId>
  <version>2.7</version>
</dependency>

 编写GsonUtils类

//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
//

package util;

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;
import java.util.Collection;
import java.util.Enumeration;
import java.util.Iterator;

public class GsonUtils {
    private static final String EMPTY_JSON = "{}";
    private static final String EMPTY_JSON_ARRAY = "[]";
    private static final String DEFAULT_DATE_PATTERN = "yyyy-MM-dd HH:mm:ss";

    public GsonUtils() {
    }

    public static String toJson(Object target) {
        return toJson(target, (Type)null, (String)null);
    }

    public static String toJson(Object target, Type targetType, String datePattern) {
        if(target == null) {
            return EMPTY_JSON;
        } else {
            GsonBuilder builder = new GsonBuilder();
            if(datePattern == null || datePattern.length() < 1) {
                datePattern = DEFAULT_DATE_PATTERN;
            }

            builder.setDateFormat(datePattern);
            Gson gson = builder.create();
            String result = EMPTY_JSON;

            try {
                if(targetType == null) {
                    result = gson.toJson(target);
                } else {
                    result = gson.toJson(target, targetType);
                }
            } catch (Exception var7) {
                if(target instanceof Collection || target instanceof Iterator || target instanceof Enumeration || target.getClass().isArray()) {
                    result = EMPTY_JSON_ARRAY;
                }
            }

            return result;
        }
    }

    public static String toJson(Object target, Type targetType) {
        return toJson(target, targetType, (String)null);
    }

    public static <T> T fromJson(String json, TypeToken<T> token, String datePattern) {
        if(json != null && json.length() >= 1) {
            GsonBuilder builder = new GsonBuilder();
            if(datePattern == null || datePattern.length() < 1) {
                datePattern = DEFAULT_DATE_PATTERN;
            }

            builder.setDateFormat(datePattern);
            Gson gson = builder.create();

            try {
                return gson.fromJson(json, token.getType());
            } catch (Exception var6) {
                return null;
            }
        } else {
            return null;
        }
    }

    public static Object fromJson(String json, Type type, String datePattern) {
        if(json != null && json.length() >= 1) {
            GsonBuilder builder = new GsonBuilder();
            if(datePattern == null || datePattern.length() < 1) {
                datePattern = DEFAULT_DATE_PATTERN;
            }

            builder.setDateFormat(datePattern);
            Gson gson = builder.create();

            try {
                return gson.fromJson(json, type);
            } catch (Exception var6) {
                return null;
            }
        } else {
            return null;
        }
    }

    public static Object fromJson(String json, Type type) {
        return fromJson(json, (Type)type, (String)null);
    }

    public static <T> T fromJson(String json, TypeToken<T> token) {
        return (T)fromJson(json, (TypeToken)token, (String)null);
    }

    public static <T> T fromJson(String json, Class<T> clazz, String datePattern) {
        if(json != null && json.length() >= 1) {
            GsonBuilder builder = new GsonBuilder();
            if(datePattern == null || datePattern.length() < 1) {
                datePattern = DEFAULT_DATE_PATTERN;
            }

            builder.setDateFormat(datePattern);
            Gson gson = builder.create();

            try {
                return gson.fromJson(json, clazz);
            } catch (Exception var6) {
                return null;
            }
        } else {
            return null;
        }
    }

    public static <T> T fromJson(String json, Class<T> clazz) {
        return (T)fromJson(json, (Class)clazz, (String)null);
    }


}

编写test测试类

public class Test {

    class Model{
        private String id;
        private String name;
        public String getId() {
            return id;
        }

        public void setId(String id) {
            this.id = id;
        }

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public String toString(){
            return "id="+this.id+";name="+this.name;
        }
    }
    public static void main(String[] args) {


        Map<String,Object> map = new HashMap<String,Object>();
        map.put("1",1);
        map.put("2",2);
        map.put("3",3);
        System.out.println(GsonUtils.toJson(map));

        List<Model> listTojson = new ArrayList<Model>();
        Test.Model model1 = new Test().new Model();
        model1.setId("1");
        model1.setName("张三");

        Test.Model model2 = new Test().new Model();
        model2.setId("2");
        model2.setName("李四");

        listTojson.add(model1);
        listTojson.add(model2);
        String json = GsonUtils.toJson(listTojson);

        System.out.println("json="+json);
        List<Model> modelList = (List<Model>)GsonUtils.fromJson(json,new TypeToken<List<Model>>(){}.getType());
        System.out.println("modelList="+modelList.toString());
   }
}

 

转载于:https://my.oschina.net/zhangshuge/blog/760012

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值