當(dāng)前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
JSON转List
JSON轉(zhuǎn)List在平時(shí)的開發(fā)中經(jīng)常遇到,這里介紹兩張方法:
1.使用jackson(推薦,支持嵌套復(fù)雜結(jié)構(gòu)):
ObjectMapper mapper = new ObjectMapper(); JavaType javaType = mapper.getTypeFactory().constructParametricType(List.class, MachineConnectResultVO.class); List<MachineConnectResultVO> resMsg = new ArrayList<MachineConnectResultVO>(); try {resMsg = (List<MachineConnectResultVO>)mapper.readValue(res, javaType); } catch (IOException e) {e.printStackTrace(); }
2.使用JsonArray:
JSONArray idsArr = JSONArray.fromObject(idStr); List<DomainKeepOption> domainKeepOptionList = JSONArray.toList(idsArr, new DomainKeepOption(), new JsonConfig());
上面的XX.class可以是你自己定義的復(fù)雜VO,需要你提前按照J(rèn)SON的格式構(gòu)造好
public class MachineConnectResultVO {private String assetNum;private List<IpConnectVO> ips;getters and setters... } public class IpConnectVO {private String ip;private Boolean status;getter and setter... } public class DomainKeepOption {private Integer id;//域名idprivate Integer keepA;//1選中 0未選中private Integer keepHaiWai;//1選中 0未選中g(shù)etter and setter... }有點(diǎn)要注意的是jsonArray這種形式不支持嵌套復(fù)雜類型的如上面的MachineConnectResultVO下又有IpConnectVO這個(gè)類型,jackson對(duì)這個(gè)支持的很好
而且jackson方法還可以用下面這個(gè)方式試下(沒測(cè)試過),更加簡(jiǎn)潔明了
ObjectMapper mapper = new ObjectMapper(); List<MachineConnectResultVO> aa = mapper.readValue(res, new TypeReference<List<MachineConnectResultVO>>() {});
總結(jié)
- 上一篇: 【机器学习】GitHub 标星17.4K
- 下一篇: JSON和JS对象之间的互转