• 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 }
  • 相关阅读:
    servlet中doGet()和doPost()的用法
    mybatis动态SQL中的sql片段
    动态SQL语句
    Mybaits的中的对象映射(包含仅有基本数据类型的属性的和对象类型的属性的)
    <img src = "..."/>的一个图片上面怎么在放上字
    启动tomcat时出现The specified JRE installation does not exist 如何解决?
    Navicat图形更改表结构的时,设置外键时出现1452错误
    数据库主键和外键
    数据库设计的过程中的设置外键的作用
    Hibernate 事务管理
  • 原文地址:https://www.cnblogs.com/nSai-sj/p/6769693.html
Copyright © 2020-2023  润新知