JSON转成List集合存储Map

本文详细介绍使用Java的FastJSON库解析JSON数组到Map集合的八种方法,包括利用parse、parseObject、parseArray及JSON.parseArray等方法,并通过具体示例代码展示了不同解析策略的应用。

package com.zkn.newlearn.json;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;

import java.util.List;
import java.util.Map;

/**

  • Created by zkn on 2016/8/22.
    */
    public class JsonToMapTest02 {

    public static void main(String[] args){

     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());
         }
     }
     //第二种方式
     List<Map<String,String>> listObjectSec = JSONArray.parseObject(strArr,List.class);
     System.out.println("利用JSONArray中的parseObject方法并指定返回类型来解析json数组字符串");
     for(Map<String,String> mapList : listObjectSec){
         for (Map.Entry entry : mapList.entrySet()){
             System.out.println( entry.getKey()  + "  " +entry.getValue());
         }
     }
     //第三种方式
     JSONArray listObjectThir = JSONArray.parseArray(strArr);
     System.out.println("利用JSONArray中的parseArray方法来解析json数组字符串");
     for(Object mapList : listObjectThir){
         for (Object entry : ((Map)mapList).entrySet()){
             System.out.println(((Map.Entry)entry).getKey()  + "  " +((Map.Entry)entry).getValue());
         }
     }
     //第四种方式
     List listObjectFour = JSONArray.parseArray(strArr,Map.class);
     System.out.println("利用JSONArray中的parseArray方法并指定返回类型来解析json数组字符串");
     for(Object mapList : listObjectFour){
         for (Object entry : ((Map)mapList).entrySet()){
             System.out.println(((Map.Entry)entry).getKey()  + "  " +((Map.Entry)entry).getValue());
         }
     }
     //第五种方式
     JSONArray listObjectFifth = JSONObject.parseArray(strArr);
     System.out.println("利用JSONObject中的parseArray方法来解析json数组字符串");
     for(Object mapList : listObjectFifth){
         for (Object entry : ((Map)mapList).entrySet()){
             System.out.println(((Map.Entry)entry).getKey()  + "  " +((Map.Entry)entry).getValue());
         }
     }
     //第六种方式
     List listObjectSix = JSONObject.parseArray(strArr,Map.class);
     System.out.println("利用JSONObject中的parseArray方法并指定返回类型来解析json数组字符串");
     for(Object mapList : listObjectSix){
         for (Object entry : ((Map)mapList).entrySet()){
             System.out.println(((Map.Entry)entry).getKey()  + "  " +((Map.Entry)entry).getValue());
         }
     }
     //第七种方式
     JSONArray listObjectSeven = JSON.parseArray(strArr);
     System.out.println("利用JSON中的parseArray方法来解析json数组字符串");
     for(Object mapList : listObjectSeven){
         for (Object entry : ((Map)mapList).entrySet()){
             System.out.println(((Map.Entry)entry).getKey()  + "  " +((Map.Entry)entry).getValue());
         }
     }
     //第八种方式
     List listObjectEigh = JSONObject.parseArray(strArr,Map.class);
     System.out.println("利用JSON中的parseArray方法并指定返回类型来解析json数组字符串");
     for(Object mapList : listObjectEigh){
         for (Object entry : ((Map)mapList).entrySet()){
             System.out.println(((Map.Entry)entry).getKey()  + "  " +((Map.Entry)entry).getValue());
         }
     }
    

    }
    }

### 将 JSON 字符串解析为 List<Map> 对象 为了将 JSON 字符串解析为 `List<Map>` 集合,在 Java 中可以采用多种库来实现这一目标,其中包括 Gson 和 Hutool 工具包。 #### 使用 Gson 库解析 JSON 字符串至 List<Map> 通过引入 Google 的 Gson 库,能够轻松地把复杂的 JSON 数据结构映射成相应的 Java 类型。下面是一个具体的例子: ```java import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; import java.lang.reflect.Type; import java.util.List; import java.util.Map; public class JsonToListMapExample { public static void main(String[] args) { String jsonString = "[{\"name\":\"Alice\",\"age\":25},{\"name\":\"Bob\",\"age\":30}]"; Gson gson = new Gson(); Type listType = new TypeToken<List<Map<String, Object>>>(){}.getType(); List<Map<String, Object>> listOfMaps = gson.fromJson(jsonString, listType); System.out.println(listOfMaps); // 输出转换后的列表 } } ``` 这段代码展示了如何利用 Gson 来处理 JSON 数组并将其解码为 `List<Map<String, Object>>` 形式的集合[^2]。 #### 使用 Hutool 解析 JSONList<Map> Hutool 是一个非常实用的工具集,它简化了许多常见的开发任务,包括 JSON 处理。以下是使用 Hutool 进行相同操作的方法: 首先确保项目中已经包含了 Hutool 依赖项[^3]: ```xml <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.8.16</version> </dependency> ``` 接着可以通过如下方式读取 JSON 并创建所需的 Java 结构: ```java import cn.hutool.json.JSONUtil; import java.util.List; import java.util.Map; public class HutoolJsonToListMapExample { public static void main(String[] args) { String jsonString = "[{\"name\":\"Alice\",\"age\":25},{\"name\":\"Bob\",\"age\":30}]"; List<Map<String, Object>> mapList = JSONUtil.toList(JSONUtil.parseArray(jsonString), Map.class); System.out.println(mapList.toString()); // 打印最终的结果 } } ``` 这两种方法都提供了简单而有效的方式来解析 JSON 文本表示形式的数据,并将其存储在一个易于访问和遍历的形式——即 `List<Map<String, Object>>` ——之中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值