fastjson解析JSON和转换JSON,java String 转Map(TypeReference)

本文介绍了如何使用Fastjson库将JSON字符串转换为Map对象,包括五种不同的方法。通过示例代码详细展示了转换过程,并提供了String转List<Map<String, String>>的实例。" 51107275,1420274,理解SSO:单点登录系统的工作原理,"['身份验证', '安全性', 'Web开发', 'SSO体系结构', '认证流程']

使用fastjson 实现String转List、Map、JSON

直接上代码:

public static void testJSONParseArray() {
        //造数据
        Map map = new HashMap();
        map.put("k11", "v11");
        map.put("k12", "v12");
        List list = new ArrayList();
        Map map1 = new HashMap();
        map1.put("k21", "v21");
        map1.put("k22", "v22");
        list.add(map);
        list.add(map1);
        //把list转成JSON形式的String
        String listJson = JSONObject.toJSONString(list);
        System.out.println(listJson);
        //String转成JSSONArray形式
        JSONArray jsonArray = JSONArray.parseArray(listJson);
        System.out.println(jsonArray);
        //用fastjson把JSON转成ListMap,借助非常好用的TypeReference
        List<Map<String,Object>> param = JSONObject.parseObject(jsonArray.toJSONString(),new TypeReference<List<Map<String,Object>>>(){});
        //遍历ListMap
        for (Map<String,Object> mpIn : param){
            //遍历小Map
            for (Map.Entry<String, Object> mapEntrySet:mpIn.entrySet()){
                System.out.println(mapEntrySet.getKey()+"=="+MapUtils.getString(mpIn,mapEntrySet.getKey(),""));
            }
        }
    }

控制台输出:

 

String转Map

public static Map<String, Object> stringToMap(String listJson) {
        //String转成JSONObject 形式
        JSONObject jsonArray = JSONObject.parseObject(listJson);
        System.out.println(jsonArray);
        //用fastjson把JSON转成ListMap,借助非常好用的TypeReference
        Map<String, Object> param = JSONObject.parseObject(jsonArray.toJSONString(), new TypeReference<Map<String, Object>>() {
        });
        //遍历Map
        for (Map.Entry<String, Object> mapEntrySet : param.entrySet()) {
            System.out.println(mapEntrySet.getKey() + "==" + MapUtils.getString(param, mapEntrySet.getKey(), ""));
        }

        return param;
    }

String 转List<Map<String, String>>//(这个验证在第一段代码里面有)

List<Map<String, Object>> param = JSONObject.parseObject(String.valueOf(jsonArray), new TypeReference<List<Map<String, Object>>>() {
                    });

 

 

fastjson将json字符串转化成map的五种方法:

 

package com.zkn.newlearn.json;  
 
import com.alibaba.fastjson.JSON;  
import com.alibaba.fastjson.JSONObject;  
import java.util.Map;  
 
/** 
 * JSON字符串自动转换 
 *  
 */  
public class JsonToMapTest01 {  
 
    public static void main(String[] args){  
 
        String str = "{\"0\":\"zhangsan\",\"1\":\"lisi\",\"2\":\"wangwu\",\"3\":\"maliu\"}";  
        //第一种方式  
        Map maps = (Map)JSON.parse(str);  
        System.out.println("这个是用JSON类来解析JSON字符串!!!");  
        for (Object map : maps.entrySet()){  
            System.out.println(((Map.Entry)map).getKey()+"     " + ((Map.Entry)map).getValue());  
        }  
        //第二种方式  
        Map mapTypes = JSON.parseObject(str);  
        System.out.println("这个是用JSON类的parseObject来解析JSON字符串!!!");  
        for (Object obj : mapTypes.keySet()){  
            System.out.println("key为:"+obj+"值为:"+mapTypes.get(obj));  
        }  
        //第三种方式  
        Map mapType = JSON.parseObject(str,Map.class);  
        System.out.println("这个是用JSON类,指定解析类型,来解析JSON字符串!!!");  
        for (Object obj : mapType.keySet()){  
            System.out.println("key为:"+obj+"值为:"+mapType.get(obj));  
        }  
        //第四种方式  
        /** 
         * JSONObject是Map接口的一个实现类 
         */  
        Map json = (Map) JSONObject.parse(str);  
        System.out.println("这个是用JSONObject类的parse方法来解析JSON字符串!!!");  
        for (Object map : json.entrySet()){  
            System.out.println(((Map.Entry)map).getKey()+"  "+((Map.Entry)map).getValue());  
        }  
        //第五种方式  
        /** 
         * JSONObject是Map接口的一个实现类 
         */  
        JSONObject jsonObject = JSONObject.parseObject(str);  
        System.out.println("这个是用JSONObject的parseObject方法来解析JSON字符串!!!");  
        for (Object map : json.entrySet()){  
            System.out.println(((Map.Entry)map).getKey()+"  "+((Map.Entry)map).getValue());  
        }  
        //第六种方式  
        /** 
         * JSONObject是Map接口的一个实现类 
         */  
        Map mapObj = JSONObject.parseObject(str,Map.class);  
        System.out.println("这个是用JSONObject的parseObject方法并执行返回类型来解析JSON字符串!!!");  
        for (Object map: json.entrySet()){  
            System.out.println(((Map.Entry)map).getKey()+"  "+((Map.Entry)map).getValue());  
        }  
        String strArr = "{{\"0\":\"zhangsan\",\"1\":\"lisi\",\"2\":\"wangwu\",\"3\":\"maliu\"}," +  
                "{\"00\":\"zhangsan\",\"11\":\"lisi\",\"22\":\"wangwu\",\"33\":\"maliu\"}}";  
       // JSONArray.parse()  
        System.out.println(json);  
    }  
}  

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值