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 }