zoukankan      html  css  js  c++  java
  • [转]Json字符串和map和HashMap之间的转换

    需要导入alibaba.fastJson
    maven中的依赖为

    <!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
    <dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.47</version>
    </dependency>

    导入之后就可以愉快滴使用 了。
    例子如下

    package test;
    
    import java.util.HashMap;
    import java.util.Map;
    import org.apache.commons.collections.map.HashedMap;
    import com.alibaba.fastjson.JSON;
    public class JsonTest {
    public static void main(String[] args){
    String params="{"version":"1.0","charset":"UTF-8","sign":"f94b7eb96d529bfe5b28d57288dd5b4ffb576c2ff98b2fa4ff2be6f70ab8b6e7","signType":"SHA-256","reqData":{"nextKeyValue":"","dateTime":"20160825113210","operatorNo":"9999","merchantNo":"000054","date":"20160116","branchNo":"0755"}}";
    
    HashMap<String, Object> hashMap=JSON.parseObject(params, HashMap.class);
    System.err.println("hashmap="+hashMap);
    
    Map<String, Object> map=JSON.parseObject(params, Map.class);
    System.out.println("map="+map);
    }
    }

    结果

    hashmap={sign=f94b7eb96d529bfe5b28d57288dd5b4ffb576c2ff98b2fa4ff2be6f70ab8b6e7, signType=SHA-256, reqData={"nextKeyValue":"","dateTime":"20160825113210","operatorNo":"9999","merchantNo":"000054","branchNo":"0755","date":"20160116"}, charset=UTF-8, version=1.0}
    map={sign=f94b7eb96d529bfe5b28d57288dd5b4ffb576c2ff98b2fa4ff2be6f70ab8b6e7, signType=SHA-256, reqData={"nextKeyValue":"","dateTime":"20160825113210","operatorNo":"9999","merchantNo":"000054","branchNo":"0755","date":"20160116"}, charset=UTF-8, version=1.0}
    

    当然,JSON.parseObject(String,Clazz)只是其中的一个。

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

     

    ————————————————
    版权声明:本文为CSDN博主「张超帅」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/weixin_38070406/article/details/80907581

  • 相关阅读:
    图论 拓扑排序
    图论 k短路
    图论 最短路 spfa
    12.14 操作系统实验:linux虚拟机与进程管理
    Anaconda 换用清华园后安装速度依然很慢,或者安装包出错
    6.21 在panel中设置背景并不覆盖控件--paintComponent
    1.15 关于String类型和其他主数据类型相互转换的方法 (转)
    1.14 Headfirstjava第五章 简单游戏代码
    1.14 HeadFirstJava 前六章读书笔记总结
    1.22训练赛 --ac2
  • 原文地址:https://www.cnblogs.com/wangcp-2014/p/11578180.html
Copyright © 2011-2022 走看看