一、寻找收藏夹
浏览器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的数据类型
类型中我们可以分为 数组,对象,容器
三、解析 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 MapparseChromeUrl(String content){ if(null==content) return null; Map saveUrlMap=new HashMap (); JSONObject jo=JSON.parseObject(content); Set > set=((JSONObject) jo.get("roots")).entrySet(); for(Entry entry :set){ saveUrlMap.putAll(findAllMap(entry.getValue())); } return saveUrlMap; } /** * 解析Chrome专用 查找 */ public Map findAllMap(Object objMsg){ Map resultMap=new HashMap (); String type=((JSONObject)objMsg).getString("type"); if("folder".equals(type)){ JSONArray ja=((JSONObject)objMsg).getJSONArray("children"); for(int i=0;i