yformater是一款chrome瀏覽器插件,用來格式化(高亮)服務端接口返回的json數據。
實際上小菜並不是第一個寫這種插件的,但是現有的chrome json格式化插件實在是不太好用,索性小菜自己寫一個,自己用的同時,分享給大家。
先說說為什么需要yformater,如果直接使用chrome瀏覽器訪問api,我們看到的數據是這樣的:
這樣的數據一般人分析不了,於是大多數讀者會把它復制粘貼到某某在線json格式化工具上,然后才能繼續分析。
而有了yformater之后,是這樣的:
完全不需要讀者去做任何繁瑣的操作,一鍵格式化json數據。
廢話不多說,接下來直接概述yformater究竟有多么強大。
最基本的json格式化
可折疊的json格式化
從剪貼板格式化(NEW 2016年1月4日 v1.1)
此功能看似簡單,但實際意義重大。
傳統意義上的json格式化插件,局限於格式化已有的數據,一般情況下只能格式化接口返回的json字符串,但假如讀者的json字符串不在瀏覽器中,它在某個文本文件中,或者在某個文章里,這時候傳統瀏覽器插件就無能為力了,讀者只能自己打開某某編輯器進行格式化,或者使用某某在線工具格式化。
yformater獨具匠心,以剪貼板為紐帶,提供一個瀏覽器插件與外界交互的通道,即簡單,又實用。
因此,讀者可以從任意位置復制一段json字符串,然后打開谷歌瀏覽器,新建一個標簽頁(實際上任意頁面均可),然后[右鍵]--->[從剪貼板格式化json],yformater將呈現給讀者優雅的json格式。
字符串智能選中
單擊字符串,自動選中整個字符串,一鍵選中,擺脫手動拖放選中。
快速訪問相對鏈接
直接選中相對連接,右鍵訪問,快捷訪問相對資源,再也不用手動構造拼接相對鏈接。
2017年1月4日補充:
鑒於很多不明真相的讀者不太理解yformater右鍵菜單中[訪問選中連接]的威力,此刻筆者專門做個示范。
首先需要明確,這個右鍵菜單項,必須在選中頁面任意內容后,才會出現。
筆者在某社區瀏覽互動內容,突然發現一個感興趣的鏈接,但是這個鏈接並不完整,很明顯這是一個相對鏈接,而且是相對於當前頁面路徑的鏈接。
此時,chrome自帶的[訪問選中連接]完全廢掉了,變成了[使用Google搜索…],因為chrome只能識別完整的鏈接,這樣的相對鏈接,是無法處理的。
但是yformater就不怕了,yformater會嘗試訪問你選中的一切,甚至它根本不是鏈接。
對於yformater而言,如果是完整鏈接,理所當然會訪問完整鏈接;如果是相對鏈接,會根據相對鏈接的規則自動轉換成完整鏈接;如果選中的不是鏈接,可能香蕉也不知道它會跳轉到哪里。
綜上所述,在本例中,點擊[訪問選中連接],將會跳轉到:[http://www.???.net/uploads/space/2017/0104/170828_rPsL_1456141.gif],讀者將看到美妙的畫面(馬賽克是筆者加的)。
假如讀者沒有安裝並使用yformater,很可能就無緣相見了。
沒錯,就是這么神奇!
復制帶格式的json字符串
快捷復制格式化之后的json字符串到剪切板,粘貼到其他編輯器中,自動帶有縮進。
配對括號匹配
點擊括號,智能匹配其配對括號,將其高亮顯示,便於分析json。
多種配色方案
眾口難調,小菜特准備四種配色方案,任您選擇。
鎖定功能(NEW 2016年3月30日 v1.2)
yformater的初衷是簡單的,但對於頻繁調試接口的場景,每次數據刷新都用右鍵去格式化,實在是浪費生命,因此yformater新增了鎖定功能。
鎖定功能意圖非常明確:
·鎖定當前域。yformater自動格式化當前域名下所有的頁面,相當於模糊匹配,如果開啟了此選項,yformater的應用圖標下會出現一個? 。
·鎖定當前路徑。yformater自動格式化當前頁面返回的json數據,相當於精確匹配,如果開啟了此選項,yformater的應用圖標下會出現一個=。
·解除鎖定。解除當前域或當前路徑的鎖定,yformater很聰明,它會自動識別,自動解鎖。
需要注意的是,鎖定當前域、鎖定當前路徑二者是互相排斥的,只能選其一,啟用任意一個,另一個自動解除。
層級折疊功能(NEW 2016年4月22日 v1.3)
yformater從來不想替代任何已有的chrome json格式化插件,唯一的原則就是節省開發者時間,為了更加便捷的分析數據,這一版引入層級折疊。
·展開。展開所有層級。
·折疊。折疊所有層級。
·上級。將折疊層級設置為當前層級的上一級。
·下級。將折疊層級設置為當前層級的下一級。
·1~6級。展開到對應的層級。
在此版本中,不再有右鍵菜單上的折疊選項(所有格式化默認都是不可折疊的),取而代之的是格式化完成后頁面右下角的[折疊]按鈕,點擊此按鈕,會彈出折疊工具欄,同時開啟折疊功能。
字號調整 (NEW 2016年6月6日 v1.5)
此項配置無需多言,眾口難調,怎么舒服怎么來,多大看着舒服,就調成多大。
自動識別JSONP格式化 (NEW 2016年6月6日 v1.5)
在復雜的開發周期中,並不是所有數據都為理想的json格式,對於跨域的場景而言,jsonp格式也是一種常見的服務端返回數據格式。
所謂jsonp,本質上就是json格式數據,只不過它必須通過動態插入腳本的方式調用,無法直接獲取。
傳統的"在線JSON校驗格式化工具"對此是無能為力的,只能遺憾的提示格式錯誤,而yformater敏銳的察覺到了這個問題,於是增加對以下兩種形式的jsonp解析:
·函數調用形式。舉例:_Callback({"key": "value"})
·變量賦值形式。舉例:var json_callback = {"key": "value"};
以上兩種jsonp數據,對於yformater而言,和正常的json格式沒什么區別,均可順利完成格式化操作。
關於錯誤提示(NEW 2016年4月22日 v1.3)
yformater在任何時候,都不願打擾開發者,因此,在這一版中,小菜去掉了煩人的異常alert彈窗,如果格式化出現異常,yformater只會悄悄的打印WARN日志,不會做任何過分的舉措。
消息提示美化(NEW 2016年10月30日 v1.8)
徹底拋棄原生alert,增加自定義消息提示彈窗,目前彈窗只有如下兩個用途:
·格式化錯誤提示。
·復制JSON成功提示。
彈窗無需關閉,3秒后自動消失。
折疊工具欄優化(NEW 2016年10月30日 v1.8)
做了如下兩項工作:
·工具欄樣式調整。
·工具欄拖動(工具欄最左側為拖動區域)。
快捷鍵支持(NEW 2016年10月30日 v1.8)
·Alt+X格式化當前頁面快捷鍵
·Alt+V從剪切板格式化快捷鍵
·Alt+C復制json快捷鍵
·方向鍵下(↓) 展開所有快捷鍵
·方向鍵上(↑) 折疊所有快捷鍵
·方向鍵左(←) 上一級快捷鍵
·方向鍵右(→) 下一級快捷鍵
·數字鍵1~6 折疊到對應層級快捷鍵
在新版工具欄中,鼠標滑過按鈕會提示快捷鍵。
由於作者粗心大意,忽略了Mac系統沒有Alt鍵,Mac系統下用Shift+Cmd鍵代替Alt鍵即可!
國際化(NEW 2016年10月30日 v1.8)
目前支持如下語言:
·en 英語
·zh_CN 中文簡體
·zh_TW 中文繁體
更換圖標(NEW 2016年10月30日 v1.8)
象征yformater茁壯成長!
快捷鍵屏蔽規則列表(NEW 2016年11月05日 v1.8.1)
yformater在此版本中首次引入選項頁,選項按鈕是chrome瀏覽器提供的,位置如圖:
選項頁預覽:
目前選項頁僅提供「 快捷鍵屏蔽規則列表 」操作。
如果yformater快捷鍵干擾您正常使用chrome,您可以在這里自由解除快捷鍵。
每行代表一個規則,任意一個或多個規則匹配成功,都會使yformater快捷鍵失效。
所謂規則,就是用您輸入的正則表達式去匹配當前頁面完整路徑(window.location.href)。
因此,不建議您輸入過多規則,也不建議您輸入過於復雜的規則。
每次更新規則時,一定要記得保存哦!
下載選中鏈接(NEW 2018年01月27日 v1.8.7)
用法類似於[訪問選中鏈接],只不過這個功能是用來下載文件,而非新標簽頁打開。
對於一些Json接口中返回的圖片、文檔、視頻等二進制文件鏈接,均可以使用此功能進行下載保存到本地,方便快捷,是不是有點黑科技了?
此功能與之前的[訪問選中鏈接]並列於右鍵菜單中,注意一定要選中文本后再單擊右鍵才可以看到這兩個功能哦~參考下圖:
對象長度(NEW 2018年01月27日 v1.8.7)
所謂對象,在Json中指array和object。
·array(數組)的長度顧名思義就是數組中元素個數,以length: ?形式表示,比如[1, 2, 3]長度表示為length: 3。
·object(對象)的長度是指屬性的數量,也就是常說的key,以keys length: ?表示,比如{"key1": 1, "key2": 2}長度表示為keys length: 2。
鼠標懸停在array或object起始標記處,即可顯示該array或object的長度。array起始標記為[,object起始標記為{,如圖所示:
字符選中相同字符提示(NEW 2018年09月18日 v1.9.0)
選中字符時,如果Json文檔其它位置有相同的字符,那么會以邊框的形式圈出這些字符,進行相同提示。
此功能可以用來方便、快速的確認Json文檔中的字符是否相同。
字符匹配采用嚴格模式,英文區分大小寫,一旦匹配成功,說明這些字符完全相同。
上圖吧,很基礎的功能,很多優秀的編輯器都有這功能,一看就知道怎么回事了~~~
心動不如行動,馬上使用yformater!
附:
由於我朝基本把谷歌商店給廢了,所以小菜直接提供crx文件下載。
crx安裝方法很簡單,直接拖放到擴展頁面即可。