1. 转换
@Test
public void test() {
String text = "[ {"code":"R001","date":1676703926184,"id":1001}," +
"{"code":"R002","date":1676703926184,"id":1002} ]";
List orders = JSON.parseArray(text, OrderDTO.class);
}
2. 泛型类的实例化
2.1 JSON串 –> ResultDTO
@Test
public void test() {
ResultDTO resultDTO = new ResultDTO();
resultDTO.setSuccess(true);
resultDTO.setData(new OrderDTO(1001L, "R001", new Date()));
// 打印 json 串: JSON.toJSONString(resultDTO)
// {"data":{"code":"R001","date":1712648470496,"id":1001},"success":true}
ResultDTO result = JSON.parseObject(JSON.toJSONString(resultDTO), new TypeReference>() {});
System.out.println(result);
}
@Data
public class ResultDTO {
private T data;
private Boolean success;
}
@Data
@NoArgsConstructor
@AllArgsConstructor
public class OrderDTO {
private Long id;
private String code;
private Date date;
}
2.2 JSON串 –> ResultDO>
@Test
public void joiner() {
String text = "{"module":[null],"success":true}";
ResultDO> userInfoResult = JSON.parseObject(text,
new TypeReference>>(){});
System.out.println(userInfoResult);
List module = userInfoResult.getModule();
BaseUserDO baseUserDO = module.get(0);
// 此时 baseUserDO = null, baseUserDO.getUserId() 会报NPE
System.out.println(baseUserDO.getUserId());
}
模型
@Data
public class ResultDO implements Serializable {
private static final long serialVersionUID = 693234701969300224L;
private Boolean success;
private String trace;
private String errorCode;
private String errorMessage;
private T module;
@Override
public String toString() {
return "ResultDO{success=" + this.success + ", trace='" + this.trace + "'" + ", module=" + this.module + '}';
}
}
@Data
public class BaseUserDO implements Serializable {
private static final long serialVersionUID = 3715835354206806065L;
protected String id;
protected Long userId;
protected String nick;
protected String email;
protected String loginId;
protected Date lastVisit;
}
3. Map 类型
3.1 JSON串 –> Map
@Test
public void test() {
String text = "{" +
" "001": {" +
" "id": 1001," +
" "code": "T001"" +
" }," +
" "002": {" +
" "id": 1002," +
" "code": "T002"" +
" }" +
"}";
/*
* TypeReference 构造方法是 protected,所以使用它的子类 (用匿名内部类作为TypeReference子类)
* TypeReference
3.2 JSON串 –> Map>
@Test
public void test() {
String text = "{" +
" "2024001": [" +
" {" +
" "id": 1001," +
" "code": "T001"" +
" }" +
" ]," +
" "2024002": [n" +
" {n" +
" "id": 1002," +
" "code": "T002"" +
" }" +
" ]" +
"}";
Map> map = JSON.parseObject(text, new TypeReference>>() {});
System.out.println(map);
}
【信息由网络或者个人提供,如有涉及版权请联系COOY资源网邮箱处理】
© 版权声明
部分内容为互联网分享,若有侵权请联系站长删除。
THE END
暂无评论内容