收藏夹解析

一、寻找收藏夹

      浏览器IE、FireFox、Chrome。

      1.依照我自己的机器为例子:

         IE:C:\Users\name\Favorites

           FireFox:C:\Users\name\AppData\Roaming\Mozilla\Firefox\Profiles\dwcs7zhn.default\bookmarkbackups

        Chrome: C:\Users\name\AppData\Local\Google\Chrome\User Data\Default\Bookmarks

      2.IE的收藏夹格式

文件名字
BASEURL=http://pdos.csail.mit.edu/6.828/2014/schedule.html

      3.火狐的收藏夹格式

压缩文件lz4 解压一直失败 
导出的json格式
 {
                    "guid": "T7Cp8QYVoYVQ",
                    "title": "Word Ladder II | LeetCode OJ",
                    "index": 0,
                    "dateAdded": 1416066216229000,
                    "lastModified": 1416066216236000,
                    "id": 39,
                    "charset": "UTF-8",
                    "iconuri": "https://oj.leetcode.com/favicon-192x192.png",
                    "annos": [
                        {
                            "name": "bookmarkProperties/description",
                            "flags": 0,
                            "expires": 4,
                            "value": ""
                        }
                    ],
                    "type": "text/x-moz-place",
                    "uri": "https://oj.leetcode.com/problems/word-ladder-ii/"
                }

     4.chrome的格式(读取文件注意编码)

JSON串
 
"other": {
         "children": [  ],
         "date_added": "13066238121387582",
         "date_modified": "0",
         "id": "2",
         "name": "其他书签",
         "type": "folder"
      },

二、json的数据类型

    类型中我们可以分为 数组,对象,容器

    数据类型和Json格式

 

三、解析
      3.1 IE解析

/**
     * IE收藏夹的解析 文件名路径
     */
    public String parseIEUrl(String content){
          //IE下面的格式是 	
    	String ieURL="";
    	if(null==content||"".equals(content))
    		return ieURL;
    	
    	//找到BASEURL=http://www.yinwang.org/
    	int position=content.indexOf("BASEURL");
    	if(-1==position){
    		return ieURL;
    	}
    	int endPosition=content.substring(position).indexOf("\r\n");
    	if(-1==endPosition){
    		return ieURL;
    	}
    	return content.substring(position+8,position+endPosition);
    }

    3.2FireFox解析

 如果解析导出的json明文文件,参照chrome解析

    3.3Chrome解析

        这个文件是utf8的-〉中文乱码导致 json解析的时候异常

/**
     * Chrome收藏夹的解析
     * Chrome的收藏夹是个json格式的,
     * roots->书签栏->children
     */
    public Map<String,String> parseChromeUrl(String content){
    	if(null==content)
    		return null;
        Map<String,String> saveUrlMap=new HashMap<String,String>();
        JSONObject jo=JSON.parseObject(content);
        Set<Entry<String, Object>> set=((JSONObject) jo.get("roots")).entrySet();
        for(Entry<String,Object>entry :set){
        	saveUrlMap.putAll(findAllMap(entry.getValue()));
        }
    	return saveUrlMap;
    }
    /**
     * 解析Chrome专用 查找
     */
    public Map<String,String> findAllMap(Object objMsg){
    	Map<String,String>resultMap=new HashMap<String,String>();
    	String type=((JSONObject)objMsg).getString("type");
    	if("folder".equals(type)){
    	  JSONArray ja=((JSONObject)objMsg).getJSONArray("children");
    	  for(int i=0;i<ja.size();i++){
    		  resultMap.putAll(findAllMap(ja.get(i)));
    	  }  
    	}else if("url".equals(type)){
    	  resultMap.put(((JSONObject)objMsg).getString("name"), ((JSONObject)objMsg).getString("url"));
    	}
    	return resultMap;
    }

转载于:https://my.oschina.net/findurl/blog/374005

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值