用FastJson将JSON字符串转Json

作者: adm 分类: java 发布时间: 2022-10-09

一、导入jar

  <!--fastjson-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.1.15</version>
        </dependency>

二、FastJson解析字符串主要用到的类
JSON:fastJson的解析器,用于JSON格式字符串与JSON对象及javaBean之间的转换。
JSONObject:fastJson提供的json对象。
JSONArray:fastJson提供json数组对象。

我们可以把JSONObject当成一个Map来看,只是JSONObject提供了更为丰富便捷的方法,方便我们对于对象属性的操作。

同样我们可以把JSONArray当做一个List,可以把JSONArray看成JSONObject对象的一个集合。

二、FastJson解析嵌套的json字符串

 String result ="{\"content\":\"{\\\"个人档案编号\\\":\\\"123123\\\",\\\"接种信息列表\\\":[{\\\"生产企业\\\":\\\"武汉生物\\\",\\\"剂次\\\":\\\"1\\\",\\\"接种日期\\\":\\\"2021-00-09\n" +
               "10:20:13\\\",\\\"疫苗名称\\\":\\\"新冠疫苗(Vero细胞)\\\",\\\"接种地\\\":\\\"上海市\\\"},{\\\"生产企业\\\":\\\"武汉生物\\\",\\\"剂次\\\":\\\"2\\\",\\\"接种日期\\\":\\\"2021-06-05\n" +
               "12:00:56\\\",\\\"疫苗名称\\\":\\\"新冠疫苗(Vero细胞)\\\",\\\"接种地\\\":\\\"上海市\\\"},{\\\"生产企业\\\":\\\"武汉生物\\\",\\\"剂次\\\":\\\"3\\\",\\\"接种日期\\\":\\\"2022-01-15\n" +
               "14:17:23\\\",\\\"疫苗名称\\\":\\\"新冠疫苗(Vero细胞)\\\",\\\"接种地\\\":\\\"上海市\\\"}],\\\"证件号码\\\":\\\"31022113951114571x\\\",\\\"个案状态\\\":\\\"正常\\\",\\\"国籍\\\":\\\"中国\\\",\\\"证件类型\\\":\\\"居民身份证\\\"}\",\"message\":\"success\"}";

JSONObject jsonObject = (JSONObject) JSON.parse(result);
                        String content = jsonObject.get("content").toString();
                        JSONObject jsonObject2 = (JSONObject) JSON.parse(content);
                        JSONArray arrayJson = jsonObject2.getJSONArray("接种信息列表");
                        System.out.println(arrayJson);
                        for (Object display : arrayJson) {
                            JSONObject object = JSONObject.parseObject(display.toString());
                            HashMap mapYM = new HashMap<>();
                            mapYM.put("scqy",object.get("生产企业"));
                            mapYM.put("jc",object.get("剂次"));
                            mapYM.put("jzrq",object.get("接种日期"));
                            mapYM.put("ymmc",object.get("疫苗名称"));
                            mapYM.put("ymjzd",object.get("接种地"));
                            map.put(object.get("剂次").toString(),mapYM);
                        }
                    }
                    return map;

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!