java之json串转Map的整理

美女程序员鼓励师

在字符串的转义上,我们有对应的json可以解决,一般而言是用于数据的传输,其中处理其解析的包也比较多。这里我们可以用其中的方法来进行转换。本篇以json转换成map为例,带来两张解决方法:FastJSON和Collectors.toMap,下面一起来看看这两种方法的不同解决。

1.FastJSON方法

Fastjson是阿里巴巴封装的,性能更快。

package com.zkn.newlearn.json;

 

import com.alibaba.fastjson.JSON;

import com.alibaba.fastjson.JSONObject;

import java.util.Map;

 

/**

 * JSON字符串自动转换

 * Created by zkn on 2016/8/22.

 */

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);

    }

}

2.Collectors.toMap

json字符串其实总得来说就是一个key-value的形式,应该是满足了最终想要的Map<String, List<Unit>>的结构了,所以直接一个Collectors.toMap就搞定了。    

Map<String, List<Unit>> result = JSONObject.parseObject(s)

                                           .entrySet().stream()

                                           .collect(Collectors.toMap(Map.Entry::getKey, entry -> JSONObject.parseArray(String.valueOf(entry.getValue()), Unit.class)));

注意s就是你那个json字符串。

以上就是java之json串转Map的方法整理,对于主流的FastJSON方法来说,在处理json的转换上要想对麻烦一点,所以这里的Collectors.toMap就显得比较简单,适合初学者的使用。

以上是 java之json串转Map的整理 的全部内容, 来源链接: utcz.com/z/542685.html

回到顶部