zoukankan      html  css  js  c++  java
  • kafka消息传输时的对象转字符串时所需 -json String 转list 、set、 Long、 String 、map 与json Iterator遍历

    JSONObject jsonObject = new JSONObject(jsonString);
            Iterator iterator = jsonObject.keys();
    while(iterator.hasNext()){
                key = (String) iterator.next();
            value = jsonObject.getString(key);
    }
    private static Map<String, List<NewNet>> toMap(Object object) {
            Map<String, List<NewNet>> data = new HashMap<String, List<NewNet>>();
            JSONObject jsonObject = JSONObject.fromObject(object);
            Iterator ite = jsonObject.keys();
            while (ite.hasNext()) {
                String key = String.valueOf(ite.next());
                JSONArray obj = JSONArray.fromObject(jsonObject.get(String.valueOf(key)));
                Iterator<Object> it = obj.iterator();
                while (it.hasNext()) {
                        JSONObject Obj= JSONObject.fromObject(it.next());
                        NewNet value = (NewNet) Obj.toBean(Obj,NewNet.class);
                        if(data.keySet().contains(key)){
                            data.get(key).add(value);
                        }else{
                            List<NewNet> List=new ArrayList<NewNet>();
                            List.add(value);
                            data.put(key, List);
                        }
                }
                
            }
            return data;
        }
    
    
    
    public static List<RPingCheckParamsDto> jsonToVar(String jsons){
                JSONArray objs = JSONArray.fromObject(jsons);
                Iterator<JSONObject> it = objs.iterator();
                List<RPingCheckParamsDto> dtos = new ArrayList<RPingCheckParamsDto>();
                while (it.hasNext()) {
                    JSONObject ob = (JSONObject) it.next();
                    RPingCheckParamsDto dto = new RPingCheckParamsDto();
                    if(ob.getString("device")!=null){
                       dto.setDevice((Device)JSONObject.toBean(JSONObject.fromObject(ob.
                               get("device")),Device.class));
                    }
                    if(ob.getString("starttime")!=null){
                        dto.setStarttime((Long)ob.get("starttime"));
                    }
                    if(ob.getString("type")!=null){
                        dto.setType((Integer)ob.get("type"));
                    }
                    if(ob.getString("segs")!=null){
                       dto.setSegs((ArrayList<IPTreeNodeBean>)JSONArray.toList(JSONArray.
                               fromObject(ob.get("segs")),IPTreeNodeBean.class));
                    }
                   if(ob.getString("assignedIps")!=null){
                     ArrayList<String>  Ps = (ArrayList<String>)JSONArray.toCollection(JSONArray.
                             fromObject(ob.get("assignedIps")));    
                     Set<String> bs = new HashSet<String>();      
                     for(String p:Ps){
                         bs.add(p);
                           }
                    if(ob.getString("nsegs")!=null){
                       dto.setNsegs((ArrayList<NewNet>)JSONArray.toList(JSONArray.
                           fromObject(ob.get("nsegs")),NewNet.class));
                    }
                  dto.setAssignedIps(bs);
                   }
                    if(dto!=null){
                        dtos.add(dto);
                    }
                }
                return dtos;
            }

     在信息解析的过程中发生很多bug ,直接gson去转,这里很是推荐这个,很好用,自定义类型的转化效率很高

    nhz94259@163.com
  • 相关阅读:
    NHibernate使用之详细图解
    iBatis for Net 代码生成器(CodeHelper)附下载地址(已经升级为V 1.1)
    设置devenv命令的启动版本
    NBear简介与使用图解
    jQuery 插件取url参数[jquery.url.js]的使用以及文件下载
    Ajax跨子域
    XML 通用操作
    NVelocity标签使用详解
    Visual Studio 2010 中JS注释制作
    windows自定义快速启动(运行)命令
  • 原文地址:https://www.cnblogs.com/nhz-M/p/7503542.html
Copyright © 2011-2022 走看看