安卓自定义筛选数据工具

来源:互联网 发布:edi 电子数据交换 编辑:程序博客网 时间:2024/05/16 19:01

公司移动端要统一数据格式,要求返回的数据只有他们需要的,后台又不想天天写实例,于是就自己写了个工具把需要的字段筛选一下:   数据返回之后调用getMobileData(); 就会得到想要的数据.

      

   public class GoJson {
       
     /**
      *
      * @param list 通用集合
      * @param str  需要一个自定义的字符数组  需要什么写什么 例如: String[] data = new String[]{"PHCD","USFL"};
      * @return
      * @Description:用于方便的给手机提供个性化需求数据
      * @author:xiaoyang
      * @time:2017-3-6 上午10:36:03l
      */
       public List getMobileData(List list,String[] str){
           List  arrayList2 = new ArrayList();
           int getSize = 0;
           String strResult = "";
           if(list.size()>0){
               String listToString = listToString(list,'/');//得到用/ 分开的字符串
                // str = new String[]{"PHCD","USFL"};
                String[] split = listToString.split("/");//将数据字符串分解成为数组
                String[] split2 = null ;
            
                for (String splitList : split) {
                     splitList = splitList.replace(" ","");
                    getSize++;
                    strResult="";
                    strResult+=("{");
                    String stringSJ = Replacelabel(splitList,'{','}').toString();//将转好的字符串数组装入集合中
                    split2 = stringSJ.split(",");//得到去除,的第一个数组数据
                    StringBuffer strData = new StringBuffer();
                        for (int i = 0; i < split2.length; i++) {
                            strData = new StringBuffer();
                            strData.toString().trim();
                            for (String ifs : str) {
                                    ifs = ifs.replaceAll("=","").trim();
                                        ifs=ifs+"=";
                                         ifs = ifs.trim();
                                            if(split2[i].substring(0, split2[i].indexOf("=")).equals(ifs.substring(0,ifs.indexOf("=")))){
                                                            strData.append("\""+split2[i].split("=")[0]+"\":");
                                                            strData.append("\""+(split2[i].split("=").length>1 ? split2[i].split("=")[1]:"")+"\",");                
                                                            
                                }
                            
                            
                            }
                            strResult+=(strData.toString().trim());
                        }
                        if(!strResult.toString().trim().equals(""))
                        {    
                            strResult=strResult.toString().trim().substring(0, strResult.toString().trim().length()-1).trim();
                        }
                        strResult+=("}");
                        arrayList2.add(strResult);
                        
                }

                if(!strResult.toString().trim().equals(""))
                {    
                    strResult = strResult.toString().trim().substring(0, strResult.toString().trim().length()-1).trim();
                }
                //arrayList2.add(strResult);
                //arrayList2.add(getSize);
                
                
                return arrayList2;
           }
        return arrayList2;
                
           
           
           
       }
       
        /**
         *
        * Description: 替换字符串中掺杂的标签
        * @author xiaoyang
        * @date 下午5:12:45
         */
        public String Replacelabel(String text,char str1,char str2) {
            ArrayList<String> arrayList = new ArrayList<String>();
            String newlabel="";
             int num0 = 0  ;
              int num1 =0;
            for (int i = 0; i < text.length(); i++) {
                  char  item = text.charAt(i);
                  if(item==str1){
                      num0=i+1;
                  }
                  if(item==str2){
                      num1=i;
                      newlabel=text.substring(num0, num1).trim();
                         newlabel = newlabel.trim();
                         newlabel = newlabel.replace(" ","");
                      return newlabel;
                  }
                
            }
            return null;
            
            
            
            
        }
        
            /**
             *
             * @param list  要转换的集合
             * @param separator  切割符号
             * @return
             * @Description: 转换集合成字符串
             * @author:xiaoyang
             * @time:2017-3-6 上午11:20:48
             */
           public String listToString(List list, char separator) {  
               StringBuilder sb = new StringBuilder();  
               for (int i = 0; i < list.size(); i++) {  
                   sb.append(list.get(i)).append(separator);  
               }  
               return sb.toString().substring(0,sb.toString().length()-1).trim();  
                  }
           
}



公司当前项目使用的是struts+WebService+ Mybatis  所以数据筛选完之后还做了如下处理 当然最后的字段格式可以方便的自己改变.

       
                    Total=String.valueOf(ListOfRows.size());
                    MsgData=String.valueOf(ListOfRows);
                    //MsgData = json.toString();
                    MsgType="success";
                    MsgContent="成功";
                }else{
                    MsgData = json.toString();
                    MsgType="success";
                    MsgContent="成功";
                }
            }catch (Exception e) {
                MsgType="error";
                MsgContent="信息查询异常";
                e.printStackTrace();
                
            }
            
            HttpServletResponse response = (HttpServletResponse) ActionContext.getContext().get(ServletActionContext.HTTP_RESPONSE);  
            response.setCharacterEncoding("utf-8");   
            response.setContentType("text/html;charset=utf-8");
            try {
                response.getWriter().print("{\"Total\":\""+Total+"\",\"MsgType\":\""+MsgType+"\",\"MsgContent\":\""+MsgContent+"\",\"MsgData\":"+MsgData+"}");
            } catch (IOException e) {
                e.printStackTrace();
            }
            return list;

0 0
原创粉丝点击