Bootstrap

记录转换接口返回的JSON树形结构

一、前言

调用第三方接口返回JSON树形结构

String json = "{\n" +
        "    \"code\": \"1\",\n" +
        "    \"msg\": \"成功\",\n" +
        "    \"sub_code\": \"\",\n" +
        "    \"sub_msg\": \"\",\n" +
        "    \"biz_data\": {\n" +
        "        \"appcode\": \"13115\",\n" +
        "        \"msg\": \"人员业务校验有误:该人员有正在审核的申请,不能重复登记。;\",\n" +
        "        \"tracerId\": \"68d43cda790897\",\n" +
        "        \"success\": false\n" +
        "    }\n" +
        "}";

二、使用JAR包

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
</dependency>
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
</dependency>

三、实现代码

使用去除转义符转阿里JSONObject

json = json.replace("\\n", "").replace("\\t", "").replace("\\", "");
JSONObject res = JSONObject.parseObject(StringEscapeUtils.unescapeJava(json));

使用jackson转Map

ObjectMapper mapper = new ObjectMapper();
Map<String, Object> map = mapper.readValue(json, Map.class);

使用jackson转阿里JSONObject

ObjectMapper mapper = new ObjectMapper();
JsonNode jsonNode = mapper.readTree(json);
JSONObject jsonObject = JSONObject.parseObject(String.valueOf(jsonNode));
;