记录:467
场景:根据Json字符串设计对应的Java对象。使用fastjson的JSON和hutool的JSONUtil将Java对象转换为Json字符串验证。
版本:JDK 1.8,Spring Boot 2.6.3,fastjson-2.0.33,hutool-all-5.8.12。
1.Json字符串
根据如下Json字符串设计Java对象。
{
"provinceName": "浙江省",
"areaNumber": "330000",
"data": {
"dataFlag": "01",
"cityData": {
"dataList": [{
"cityDescribe": "杭州是互联网城市",
"cityId": 2023062801,
"cityName": "杭州",
"updateTime": "2023-06-28 22:29:59"
}, {
"cityDescribe": "宁波是港口城市",
"cityId": 2023062802,
"cityName": "宁波",
"updateTime": "2023-06-28 22:29:59"
}]
}
}
}
2.对应Java对象
2.1Java对象ProvinceDto
(1)示例代码
@Data
@Builder
public class ProvinceDto<T> implements Serializable {
private String provinceName;
private String areaNumber;
private T data;
}
(2)解析代码
ProvinceDto对象对应Json字符串的provinceName、areaNumber、data属性。
2.2Java对象DataDto
(1)示例代码
@Data
@Builder
public class DataDto<T> implements Serializable {
private String dataFlag;
private T cityData;
}
(2)解析代码
DataDto对象对应JSON字符串的data属性的dataFlag、cityData属性。
2.3Java对象CityDataDto
(1)示例代码
@Data
@Builder
public class CityDataDto<T> implements Serializable {
private T dataList;
}
(2)解析代码
CityDataDto对象对应JSON字符串的data属性的cityData属性的dataList属性。
2.4Java对象CityDto
(1)示例代码
@Data
@Builder
public class CityDto implements Serializable {
private Long cityId;
private String cityName;
private String cityDescribe;
private String updateTime;
}
(2)解析代码
CityDto 对象对应JSON字符串的data属性的cityData属性的dataList属性的List中的对象。
3.使用fastjson的JSON工具类将Java对象转换为Json字符串
3.1示例代码
public static void main(String[] args) {
CityDto hangzhouDto = CityDto.builder()
.cityId(2023062801L)
.cityName("杭州")
.cityDescribe("杭州是互联网城市")
.updateTime(DateUtil.formatDateTime(new Date())).build();
CityDto ningboDto = CityDto.builder()
.cityId(2023062802L)
.cityName("宁波")
.cityDescribe("宁波是港口城市")
.updateTime(DateUtil.formatDateTime(new Date())).build();
List<Object> dataList = Arrays.asList(hangzhouDto, ningboDto);
CityDataDto<Object> cityDataDto = CityDataDto.builder()
.dataList(dataList).build();
DataDto<Object> dataDto = DataDto.builder()
.dataFlag("01")
.cityData(cityDataDto).build();
ProvinceDto<Object> provinceDto = ProvinceDto.builder()
.provinceName("浙江省")
.areaNumber("330000")
.data(dataDto)
.build();
String province = JSON.toJSONString(provinceDto);
System.out.println("把ProvinceDto对象转换为Json字符串");
System.out.println(province.toString());
}
3.2转换结果
{
"provinceName": "浙江省",
"areaNumber": "330000",
"data": {
"dataFlag": "01",
"cityData": {
"dataList": [{
"cityDescribe": "杭州是互联网城市",
"cityId": 2023062801,
"cityName": "杭州",
"updateTime": "2023-06-28 22:29:59"
}, {
"cityDescribe": "宁波是港口城市",
"cityId": 2023062802,
"cityName": "宁波",
"updateTime": "2023-06-28 22:29:59"
}]
}
}
}
4.使用hutool的JSONUtil工具类将Java对象转换为Json字符串
4.1示例代码
public static void main(String[] args) {
CityDto hangzhouDto = CityDto.builder()
.cityId(2023062901L)
.cityName("苏州")
.cityDescribe("苏州是经济发达城市")
.updateTime(DateUtil.formatDateTime(new Date())).build();
CityDto ningboDto = CityDto.builder()
.cityId(2023062902L)
.cityName("无锡")
.cityDescribe("无锡是一个宜居城市")
.updateTime(DateUtil.formatDateTime(new Date())).build();
List<Object> dataList = Arrays.asList(hangzhouDto, ningboDto);
CityDataDto<Object> cityDataDto = CityDataDto.builder()
.dataList(dataList).build();
DataDto<Object> dataDto = DataDto.builder()
.dataFlag("02")
.cityData(cityDataDto).build();
ProvinceDto<Object> provinceDto = ProvinceDto.builder()
.provinceName("江苏省")
.areaNumber("320000")
.data(dataDto)
.build();
String province = JSONUtil.toJsonStr(provinceDto);
System.out.println("把ProvinceDto对象转换为Json字符串");
System.out.println(province.toString());
}
4.2转换结果
{
"provinceName": "江苏省",
"areaNumber": "320000",
"data": {
"dataFlag": "02",
"cityData": {
"dataList": [{
"cityId": 2023062901,
"cityName": "苏州",
"cityDescribe": "苏州是经济发达城市",
"updateTime": "2023-06-28 22:28:51"
}, {
"cityId": 2023062902,
"cityName": "无锡",
"cityDescribe": "无锡是一个宜居城市",
"updateTime": "2023-06-28 22:28:51"
}]
}
}
}
以上,感谢。文章来源:https://www.toymoban.com/news/detail-507735.html
2023年6月28日文章来源地址https://www.toymoban.com/news/detail-507735.html
到了这里,关于根据Json字符串设计对应的Java对象(使用fastjson和JSONUtil工具类验证)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!