JSON字符串(数组)与JAVA、Map对象(集合)的相互转化

文章讲述了在后端开发中如何处理接收到的JSON字符串数组,涉及Map转字符串、JSON字符串转Java对象、FastJSON和阿里巴巴JSON库的使用,以及JSON数组转Map集合的方法

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用场景:后端对数据常见处理中有获取到JSON字符串对象数组,我们需通过自定义方法获取某个数组对象中的值并渲染到页面上,因此需要开发人员掌握JSON字符串(数组)与JAVA、Map对象(集合)的相互转化。

添加测试类,自行运行加深理解

详见代码如下,Person类自己定义(以下代码中使用的Person类要添加无参构造和有参构造)

//    Map转字符串
    @Test
    public void Test02() throws Exception {
        Map<String, Object> map = new HashMap<String, Object>();
        map.put("name", "张三");
        map.put("age", 23);
        map.put("gender", "男");
        ObjectMapper mapper = new ObjectMapper();
        String json = mapper.writeValueAsString(map);
        System.out.println(json);

    }

    //    json字符串转化为java对象
    @Test
    public void Test03() throws Exception {
//      String json="{\"name\":\"张三\",\"age\":23,\"gender\":\"男\"}";
        String json = "{\"gender\":\"男\",\"name\":\"张三\",\"age\":23}";
        System.out.println(json);
        ObjectMapper mapper = new ObjectMapper();
//      json字符串转化为java对象
        Person person = mapper.readValue(json, Person.class);
        System.out.println(person);
        System.out.println(person.getName());
    }

    //    利用阿里巴巴封装的FastJSON来转换json字符串的
    //    json字符串转化为Map
    @Test
    public void Test04() throws Exception {
        String s = "{\"gender\":\"男\",\"name\":\"张三\",\"age\":23}";
        Map maps = (Map) JSON.parse(s);
        for (Object map : maps.entrySet()) {
            System.out.println(((Map.Entry) map).getKey() + "     " + ((Map.Entry) map).getValue());
        }
//        System.out.println(maps);
//        System.out.println(maps.get("name"));
    }



    // json字符串数组转化为Map集合
    @Test
    public void Test06() throws Exception {
        String strArr = "[{\"0\":\"zhangsan\",\"1\":\"lisi\",\"2\":\"wangwu\",\"3\":\"maliu\"}," +
                "{\"00\":\"zhangsan\",\"11\":\"lisi\",\"22\":\"wangwu\",\"33\":\"maliu\"}]";
        List<Map<String,String>> listObjectFir = (List<Map<String,String>>) JSONArray.parse(strArr);
        System.out.println("利用JSONArray中的parse方法来解析json数组字符串");
        for(Map<String,String> mapList : listObjectFir){
            for (Map.Entry entry : mapList.entrySet()){
                System.out.println( entry.getKey()  + "  " +entry.getValue());
            }
        }
    }


    @Test
    public void Test07() throws Exception{
        String s="[{\"id\":\"d304236c7bcea2f4da17d80f5198311e\",\"label\":\"张三\"}]";
        List<Map<String,Object>> list= (List<Map<String, Object>>) JSONArray.parse(s);
        for (Map<String,Object> maplist:list)
            for(Map.Entry entry:maplist.entrySet())
                System.out.println(entry.getKey()+"  "+entry.getValue());
        System.out.println(list.get(0).get("label"));
        System.out.println(list.get(0).get("id"));

    }

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

落雨~星辰

您的支持是我的荣幸

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值