當前位置:
首頁 >
修改Fiddler实用插件JsonViewer
發布時間:2023/12/10
35
豆豆
生活随笔
收集整理的這篇文章主要介紹了
修改Fiddler实用插件JsonViewer
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在Web開發中,Fiddler是我們常用的工具,JSON是我們常用的數據格式。本文所要說的JsonViewer就是一款在Fiddler中查看JSON對象的小插件(當然它不僅僅是作為Fiddler的插件,還有獨立運行版和Visual Studio的插件)。關于它的詳細介紹和配置方法見園友景春雷的博客。
但是JsonViewer有一點讓人很不爽的地方,它在顯示日期格式的時候非常不直觀,如下圖所示:
我們都知道括號里的整數表示從1970 年1 月1 日開始到Date 對象中的時間之間的毫秒數(負數表示1970 年以前的日期),但這是計算機想要知道的,并不是我們想要知道的。幸好JsonViewer是一款開源的工具,在CodePlex上我們可以下到它的源碼,下面就開始我們的改造之旅。
經過在源碼中一翻尋覓,我在JsonObjectTree類中發現下面一段代碼,看來只要在這個函數里作一個小小的修改就可以達到我們的目的啦。
private JsonObject CreateJsonObject(object jsonObject) {JsonObject obj = new JsonObject();if (jsonObject is JavaScriptArray)obj.JsonType = JsonType.Array;else if (jsonObject is JavaScriptObject)obj.JsonType = JsonType.Object;else{obj.JsonType = JsonType.Value;obj.Value = jsonObject;}return obj; }DateTime序列化后的格式剛才我們都看見了,例如:/Date(1286183951984)/,我們可以通過正則表達式去匹配它,然后把它轉成我們想要的格式,代碼如下。
obj.JsonType = JsonType.Value; obj.Value = jsonObject; //如果是時間格式 if (jsonObject is string && Regex.IsMatch((string)jsonObject,@"^/Date\(-{0,1}\d{1,}\)/$", RegexOptions.IgnoreCase)) {DateTime utcDate = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);//從UTC時間1970年1月1日開始到DateTime對象中的時間之間的毫秒數string millisecondsFrom19700101 = Regex.Replace((string)jsonObject,@"^(/Date\()|(\)/)$", "", RegexOptions.IgnoreCase);long milliseconds;if (long.TryParse(millisecondsFrom19700101, out milliseconds)){//Tick單位為納秒utcDate = utcDate.AddTicks(milliseconds * 10000);obj.Value = utcDate.ToLocalTime().ToString();} }現在讓我們看一下效果,怎么樣,是不是清楚了很多?
轉載于:https://www.cnblogs.com/luxin/archive/2010/10/04/1842049.html
總結
以上是生活随笔為你收集整理的修改Fiddler实用插件JsonViewer的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何在Django模板中注入全局变量
- 下一篇: MAC地址厂商信息查询