IT虾米网

JSON字符串转换为Map详解

developer 2020年08月05日 编程语言 118 0

本文是利用阿里巴巴封装的FastJSON来转换json字符串的。例子如下:

  1. package com.zkn.newlearn.json;  
  2.   
  3. import com.alibaba.fastjson.JSON;  
  4. import com.alibaba.fastjson.JSONObject;  
  5. import java.util.Map;  
  6.   
  7. /** 
  8.  * JSON字符串自动转换 
  9.  * Created by zkn on 2016/8/22. 
  10.  */  
  11. public class JsonToMapTest01 {  
  12.   
  13.     public static void main(String[] args){  
  14.   
  15.         String str = "{\"0\":\"zhangsan\",\"1\":\"lisi\",\"2\":\"wangwu\",\"3\":\"maliu\"}";  
  16.         //第一种方式  
  17.         Map maps = (Map)JSON.parse(str);  
  18.         System.out.println("这个是用JSON类来解析JSON字符串!!!");  
  19.         for (Object map : maps.entrySet()){  
  20.             System.out.println(((Map.Entry)map).getKey()+"     " + ((Map.Entry)map).getValue());  
  21.         }  
  22.         //第二种方式  
  23.         Map mapTypes = JSON.parseObject(str);  
  24.         System.out.println("这个是用JSON类的parseObject来解析JSON字符串!!!");  
  25.         for (Object obj : mapTypes.keySet()){  
  26.             System.out.println("key为:"+obj+"值为:"+mapTypes.get(obj));  
  27.         }  
  28.         //第三种方式  
  29.         Map mapType = JSON.parseObject(str,Map.class);  
  30.         System.out.println("这个是用JSON类,指定解析类型,来解析JSON字符串!!!");  
  31.         for (Object obj : mapType.keySet()){  
  32.             System.out.println("key为:"+obj+"值为:"+mapType.get(obj));  
  33.         }  
  34.         //第四种方式  
  35.         /** 
  36.          * JSONObject是Map接口的一个实现类 
  37.          */  
  38.         Map json = (Map) JSONObject.parse(str);  
  39.         System.out.println("这个是用JSONObject类的parse方法来解析JSON字符串!!!");  
  40.         for (Object map : json.entrySet()){  
  41.             System.out.println(((Map.Entry)map).getKey()+"  "+((Map.Entry)map).getValue());  
  42.         }  
  43.         //第五种方式  
  44.         /** 
  45.          * JSONObject是Map接口的一个实现类 
  46.          */  
  47.         JSONObject jsonObject = JSONObject.parseObject(str);  
  48.         System.out.println("这个是用JSONObject的parseObject方法来解析JSON字符串!!!");  
  49.         for (Object map : json.entrySet()){  
  50.             System.out.println(((Map.Entry)map).getKey()+"  "+((Map.Entry)map).getValue());  
  51.         }  
  52.         //第六种方式  
  53.         /** 
  54.          * JSONObject是Map接口的一个实现类 
  55.          */  
  56.         Map mapObj = JSONObject.parseObject(str,Map.class);  
  57.         System.out.println("这个是用JSONObject的parseObject方法并执行返回类型来解析JSON字符串!!!");  
  58.         for (Object map: json.entrySet()){  
  59.             System.out.println(((Map.Entry)map).getKey()+"  "+((Map.Entry)map).getValue());  
  60.         }  
  61.         String strArr = "{{\"0\":\"zhangsan\",\"1\":\"lisi\",\"2\":\"wangwu\",\"3\":\"maliu\"}," +  
  62.                 "{\"00\":\"zhangsan\",\"11\":\"lisi\",\"22\":\"wangwu\",\"33\":\"maliu\"}}";  
  63.        // JSONArray.parse()  
  64.         System.out.println(json);  
  65.     }  
  66. }  



总结


JSON实际上是实现Map接口的子类,因此开发中要传入的参数是java.util.Map格式的实例,可以直接传JSONObject对象
发布评论

分享到:

IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!

java调用http接口并返回json对象详解
你是第一个吃螃蟹的人
发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。