51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3085|回复: 5
打印 上一主题 下一主题

[求助] JAVA使用fastjson转换json和jsondata格式数据

[复制链接]
  • TA的每日心情
    奋斗
    2018-8-7 16:39
  • 签到天数: 4 天

    连续签到: 1 天

    [LV.2]测试排长

    跳转到指定楼层
    1#
    发表于 2018-8-7 16:36:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    package com.xin.tools;

    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.Map;

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



    public class JSONTools {
           
           
            /**
             * 功能:将json串转换为一个<String,Object>类型的map,但是只能进行简单的转换,对于包含JSONArray的数据不做特殊处理;
             *
             * */
            public static Map<String, Object> jsontomap(String resultline){
                    Map<String, Object> resultmap = new HashMap<String,Object>();
                   
                    //将字符串转换为JSON对象
                    JSONObject jsonObject = JSONObject.parseObject(resultline);
                   
                    //强制转换对象属性,转换为Map类型,适用于没有JSONArray类型的json串
                    resultmap = (Map<String,Object>)jsonObject;
                   
    //                for(String key : resultmap.keySet()){
    //                        System.out.println(key + ":" + resultmap.get(key));
    //                }
                   
                    return resultmap;
            }
           
           
            /**
             *功能:将JSONAarry类型的json数据转化为一个list,list中存储的是一系列map<String,Object>容器;
             *
             *
             * */
           
            public static ArrayList<Map<String,Object>>  jsonArraytoMap(JSONArray dataObject){

                    ArrayList<Map<String,Object>> datalist = new ArrayList<Map<String,Object>>();
                   
    //                List datalist = new ArrayList();
                   
                    //循环JSONArray对象数据
                    for(Object object : dataObject){
                           
                            JSONObject jsonObject = (JSONObject)object;
                            HashMap map = new HashMap<String,String>();
                           
                            //循环JSONArray中某一json串,并将json转换为map
                            //entrySet()方法返回一个set视图(Set<Map.Entry<K,V>>),遍历set视图中的元素;
                            for(Map.Entry entry : jsonObject.entrySet()){
                                   
    //                                if(entry.getValue() instanceof JSONArray){
    //                                       
    //                                        map.put((String)entry.getKey(),jsonArraytoMap((JSONArray)entry.getValue()));
    //                                }
    //                                else{
    //                                       
    //                                        map.put((String)entry.getKey(),entry.getValue());
    //                                }
                                    map.put((String)entry.getKey(),entry.getValue());
                            }
                           
                            //将map加入到list中
                            datalist.add(map);

                    }
                   
                   
    //                datalist =(ArrayList<Map<String, String>>) dataObject;
                   
    //                for(Map<String,Object> tempMap :datalist ){
    //                        System.out.println(tempMap);
    //                }
    //               
                    return datalist;       
                   
            }
           
           
            public static void main(String[] args){
                   
                    String urlline = "http://feature-icbc.api.fin.ceshi.youxinjinrong.com/car_half/bank/list";
                    Map<String,String> param = new HashMap<String,String>();
                    param.put("county_id", "6670");
                    param.put("card_no", "");
                    param.put("debug_token", "58e98899beea1bfaedcb5046414dd7e9");
                    param.put("debug_show", "0");
                   
                    String s = ConnectionURL.sendGET(urlline, param);
                    System.out.println(s);
                   
                    Map<String, Object> returnMap = new HashMap<String,Object>();
                    returnMap = JSONTools.jsontomap(s);
                   
                    JSONTools.jsonArraytoMap((JSONArray)returnMap.get("data"));
                   
                   
            }
           

    }


    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

  • TA的每日心情
    开心
    昨天 10:04
  • 签到天数: 473 天

    连续签到: 2 天

    [LV.9]测试副司令

    3#
    发表于 2019-3-11 11:06:24 | 只看该作者
    这倒是一个好方法
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-9 02:06 , Processed in 0.063041 second(s), 22 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表