可以使用Json-lib,但是这个动态库在2010年12月已经停止维护。
<!-- https://mvnrepository.com/artifact/net.sf.json-lib/json-lib --> <dependency> <groupId>net.sf.json-lib</groupId> <artifactId>json-lib</artifactId> <version>2.4</version> </dependency>
jackson同样可以实现json的动态解析,并且一直在维护。包含三个类库
Jackson Databind Jackson Core Jackson Annotations
使用readTree获取JsonNode
String json="{\"code\": \"12\",\"msg\": \"success\",\"data\": {\"name\": \"小明\",\"company\": \"帝国时代\"}}"; JsonNode node = JsonProvider.getDefaultMapper().readTree(inputJson);
已知key值,使用findValue获取指定value
JsonNode code = node.findValue("code"); if(null != code) { String strCode = code.asText(); }
通过JsonNode的isArray和isObject判断是数组还是对象,以上就可以动态解析json了。