JSON 学习 :JSON数据串、对象、数组之间的转化

  1 package utils;
  2 
  3 import java.util.ArrayList;
  4 import java.util.List;
  5 import com.google.gson.Gson;
  6 import com.google.gson.JsonObject;
  7 import com.google.gson.reflect.TypeToken;
  8 import java.lang.reflect.Type;
  9 import bean.User;
 10 import net.sf.json.JSONArray;
 11 
 12 public class GsonUtil {
 13 
 14     /**
 15      * 将json数据串转换成对象数据
 16      * 
 17      * @param json
 18      * @param cls
 19      * @return
 20      * @throws Exception
 21      */
 22     public static <T> T fromJson(String json, Class<T> cls) throws Exception {
 23         T obj = null;
 24         Gson gson = new Gson();
 25         obj = cls.newInstance();
 26         obj = gson.fromJson(json, cls);
 27         return obj;
 28     }
 29 
 30     /**
 31      * 将对象转化成Json 数据串
 32      * 
 33      * @param obj
 34      * @return
 35      */
 36     public static String objToJson(Object obj) {
 37         return new Gson().toJson(obj);
 38     }
 39 
 40     /**
 41      * 将List Json数据串转换成List集合
 42      * 
 43      * @param json
 44      * @param clas
 45      * @return
 46      */
 47     public static <T> ArrayList<T> jsonToArrayList(String json, Class<T> cls) {
 48         Type type = new TypeToken<ArrayList<JsonObject>>() {
 49         }.getType();
 50         ArrayList<JsonObject> jsonObjects = new Gson().fromJson(json, type);
 51 
 52         ArrayList<T> arrayList = new ArrayList<>();
 53         for (JsonObject jsonObject : jsonObjects) {
 54             arrayList.add(new Gson().fromJson(jsonObject, cls));
 55         }
 56         return arrayList;
 57     }
 58 
 59     /**
 60      * 将List集合转化成Json数据串
 61      * 
 62      * @param list
 63      * @return
 64      */
 65     public static String listToJson(Object list) {
 66         JSONArray jsonArray = JSONArray.fromObject(list);
 67         return jsonArray.toString();
 68     }
 69 
 70     /**
 71      * test
 72      * 测试
 73      * @param args
 74      */
 75     public static void main(String[] args) {
 76         try {
 77             User u1 = new User();
 78             u1.setUid(100000);
 79             u1.setAddress("sasassdasd");
 80             u1.setAge(25);
 81             u1.setEmail("2515@qq.com");
 82             u1.setName("sai");
 83             String string = objToJson(u1);
 84             User u2 = new User();
 85             User u3 = new User();
 86             u3.setUid(100000);
 87             u3.setAddress("sasassdasd");
 88             u3.setAge(25);
 89             u3.setEmail("25175@qq.com");
 90             u3.setName("sai");
 91             List<User> uList = new ArrayList<User>();
 92             uList.add(u1);
 93             uList.add(u3);
 94             String s2 = listToJson(uList);
 95 
 96             List<User> uList1 = new ArrayList<User>();
 97             uList1 = jsonToArrayList(s2, User.class);
 98 
 99             for (User user : uList1) {
100                 System.out.println(user.toString());
101             }
102 
103             u2 = fromJson(string, User.class);
104             System.out.println(u2.toString());
105         } catch (Exception e) {
106             // TODO Auto-generated catch block
107             e.printStackTrace();
108         }
109     }
110 
111 }

 

转载于:https://www.cnblogs.com/nSai-sj/p/6769693.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值