json动态解析

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

上一篇:problems_spark


下一篇:Jackson 泛型序列化