JSON和对象之间的转换
1.引入阿里JSON(com.alibaba.fastjson)的pom依赖
<!-- 阿里json -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.8</version>
</dependency>
2.JSON和JSONObject的关系
2-1. JSONObject继承了JSON
3.JSON和JavaBean的简单转换
3-1. JavaBean–>JSON
public static String test01() {
String json = JSONObject.toJSONString(init());
System.out.println(json);
return json;
}
3-2. JSON–>JSONObject
public static JSONObject test02() {
String json = JSONObject.toJSONString(init());
JSONObject jsonObject = JSONObject.parseObject(json, Feature.OrderedField);
System.out.println(jsonObject);
return jsonObject;
}
3-3. JSON(JSONObject)–>JavaBean
public static DatabasesDto test03() {
String json = JSONObject.toJSONString(init());
DatabasesDto res = JSONObject.parseObject(json, DatabasesDto.class);
System.out.println(res);
JSONObject jsonObject = JSONObject.parseObject(json);
res = JSONObject.toJavaObject(jsonObject, DatabasesDto.class);
System.out.println(res);
return res;
}
3-4. List–>JSON
public static String test04() {
String json = JSONObject.toJSONString(initList());
System.out.println(json);
String jsonObject = (String) JSONObject.toJSON(json);
System.out.println(jsonObject);
return json;
}
3-5. JSON–>List
public static List<DatabasesDto> test05() {
String json = JSONObject.toJSONString(initList());
System.out.println(json);
List<DatabasesDto> list = JSONObject.parseArray(json, DatabasesDto.class);
System.out.println(list);
return list;
}
4.JSON和List的复杂转换
-
对于多层嵌套的JSON串,可以使用JSONObject类的方法获取JSON串中的某些值进行转换
-
JSONObject类的几个方法如下:
@SuppressWarnings("unused")
public static void test01(String string) {
JSONObject jsonObject = JSONObject.parseObject(string);
JSONObject jsonObject1 = jsonObject.getJSONObject("data");
JSONArray jsonArray = jsonObject1.getJSONArray("tenantDatabaseList");
Integer statusCode = jsonObject.getInteger("statusCode");
String msg = jsonObject.getString("msgDesc");
}
5. 源码参见GitHub地址:
查看源码请点击–> https://github.com/Liuuzhichao/JSON-JavaBean