可以使用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了。