在解析前端传入json的时候,需要解析json串,这里使用jsonpath进行解析
首先需要导入相关的maven依赖
<dependency>
<groupId>com.jayway.jsonpath</groupId>
<artifactId>json-path</artifactId>
</dependency>
进行配置文件的编写
public class JsonPathConfig {
@Bean
public com.jayway.jsonpath.Configuration jsonPathConfiguration() {
com.jayway.jsonpath.Configuration.setDefaults(new com.jayway.jsonpath.Configuration.Defaults() {
private final JsonProvider jsonProvider = new JacksonJsonProvider();
private final MappingProvider mappingProvider = new JacksonMappingProvider();
@Override
public JsonProvider jsonProvider() {
return jsonProvider;
}
@Override
public MappingProvider mappingProvider() {
return mappingProvider;
}
@Override
public Set<Option> options() {
return EnumSet.noneOf(Option.class);
}
});
return com.jayway.jsonpath.Configuration.defaultConfiguration();
}
}
下面写一下我使用的解析方法
public List<Obj> getJson(String url, String postParam) {
JSONObject jsonParam = JSONObject.parseObject(postParam);
RestTemplate template = new RestTemplate();
ResponseEntity<String> response = null;
try {
response = template.postForEntity(url, jsonParam, String.class);
} catch (RestClientException e) {
//抛出自定义异常
throw new ApiException(ErrorCode);
}
JSONObject getMsg = JSON.parseObject(response.getBody());
ReadContext context = JsonPath.parse(getMsg);
//在这里,“$”中为需要获取到json的路径
List<Obj> result = context.read("$.data", new TypeRef<List<Obj>>() {});
return result;
}
测试jsonpath:jsonpath
更多推荐
java中使用jsonpath解析json串
发布评论