在解析前端传入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串