Json是一种轻量级的数据交换格式, 其语法格式很是简单json
对象:{key : value, key: value...}
数组:[元素1, 元素2 ...]后端
在平时的开发中,咱们都须要使用Json在先后端之间进行数据交换,这里咱们主要来看一下Java最方便快捷的解析Json的方式数组
String toJson(Object src)
将json转为对象<T> T fromJson(String json, Class<T> classOfT)
code
将json转为集合<T> T fromJson(String json, Type typeOfT)
对象
代码示例:开发
/** * 将对象转换为json * @param o * @return */ public static String getJsonString(Object o){ return new Gson().toJson(o); } /** * 将json转为对象 * @param jsonString * @param clazz * @return */ public static Object getObjectFromJson(String jsonString, Class<?> clazz){ return new Gson().fromJson(jsonString, clazz); } /** * 将json转为集合 * @param jsonString * @param type * @return */ public static Object getObjectFromJson(String jsonString, Type type){ return new Gson().fromJson(jsonString, type); } public static void main(String[] args) { // 对象转json String objectJson = getJsonString(new Student(18, "jason")); //结果:{"age":18,"name":"jason"} System.out.println(objectJson); // json转对象 Student student = (Student) getObjectFromJson("{\"age\":18,\"name\":\"jason\"}", Student.class); //结果:Student{age=18, name='jason'} System.out.println(student); // List List<Student> list = new ArrayList<>(); list.add(new Student(18, "jason")); list.add(new Student(19, "lee")); // 集合转json String listJson = getJsonString(list); //结果:[{"age":18,"name":"jason"}, {"age":19,"name":"lee"}] System.out.println(listJson); // Json转List Type type = new TypeToken<ArrayList<Student>>() { }.getType(); ArrayList<Student> arrayList = (ArrayList<Student>) getObjectFromJson(listJson, type); // 结果:[Student{age=18, name='jason'}, Student{age=19, name='lee'}] System.out.println(arrayList.toString()); // HashMap HashMap<String, String> hashMap = new HashMap<>(); hashMap.put("name", "jason"); hashMap.put("age", "18"); // HashMap转json String mapJson = getJsonString(hashMap); // 结果:{"name":"jason","age":"18"} System.out.println(mapJson); // json转HashMap Type mapType = new TypeToken<HashMap<String, String>>() {}.getType(); HashMap<String, String> map = (HashMap<String, String>) getObjectFromJson(mapJson, mapType); /** * 结果 * key:name, value:jason * key:age, value:18 */ for (Map.Entry<String, String> entry : map.entrySet()){ System.out.println("key:" + entry.getKey() + ", value:" + entry.getValue()); } }
static String toJSONString(Object object)
json转对象static <T> T parseObject(String text, Class<T> clazz)
get
json转Liststatic <T> List<T> parseArray(String text, Class<T> clazz)
hash
json转Mapstatic <T> T parseObject(String text, TypeReference<T> type, Feature... features)
ast
代码示例:class
/** * 对象转json * @param o * @return */ public static String getJsonString(Object o){ return JSON.toJSONString(o); } /** * json转对象 * @param jsonString * @param clazz * @return */ public static Object getObjectFromJson(String jsonString, Class<?> clazz){ return JSON.parseObject(jsonString, clazz); } /** * json转list * @param jsonString * @param clazz * @return */ public static Object getArrayFromJson(String jsonString, Class<?> clazz){ return JSON.parseArray(jsonString, clazz); } /** * json转map * @param jsonString * @param typeReference * @return */ public static Object getMapFromJson(String jsonString, TypeReference<?> typeReference){ return JSON.parseObject(jsonString, typeReference); } public static void main(String[] args) { // 对象转json String objectJson = getJsonString(new Student(18, "jason")); //结果:{"age":18,"name":"jason"} System.out.println(objectJson); // json转对象 Student student = (Student) getObjectFromJson(objectJson, Student.class); // 结果:Student{age=18, name='jason'} System.out.println(student); // List List<Student> list = new ArrayList<>(); list.add(new Student(18, "jason")); list.add(new Student(19, "lee")); // List转json String listJson = getJsonString(list); //结果:[{"age":18,"name":"jason"},{"age":19,"name":"lee"}] System.out.println(listJson); // json转List List<Student> students = (List<Student>) getArrayFromJson(listJson, Student.class); // 结果:[Student{age=18, name='jason'}, Student{age=19, name='lee'}] System.out.println(students.toString()); // Map HashMap<String, String> hashMap = new HashMap<>(); hashMap.put("name", "jason"); hashMap.put("age", "18"); // Map转json String mapJson = getJsonString(hashMap); // 结果:{"name":"jason","age":"18"} System.out.println(mapJson); // json转HashMap TypeReference<HashMap<String, String>> typeReference = new TypeReference<HashMap<String, String>>() {}; HashMap<String, String> map = (HashMap<String, String>) getMapFromJson(mapJson, typeReference); /** * 结果 * key:name, value:jason * key:age, value:18 */ for (Map.Entry<String, String> entry : map.entrySet()){ System.out.println("key:" + entry.getKey() + ", value:" + entry.getValue()); } }