在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相关推荐

  1. 【巨人的肩膀上制造世界】——5——Unity3D实用插件之Mouse Interaction-Object Highlight,快速构建模型的悬浮高亮!悬浮提示!悬浮动画!

    [巨人的肩膀上制造世界]--5--Unity3D实用插件之Mouse Interaction-Object Highlight,快速构建模型的悬浮高亮!悬浮提示!悬浮动画! 目录 1.博客介绍 2.内 ...

  2. chrome五十大实用插件集合!

    来源:http://blog.csdn.net/dadoneo/article/details/6296358 时下很多人都用上了Google Chrome浏览器,这款目前世界上最快的浏览器既简洁又高 ...

  3. chrome五十大实用插件集合

    2019独角兽企业重金招聘Python工程师标准>>> 时下很多人都用上了Google Chrome浏览器,这款目前世界上最快的浏览器既简洁又高效,用来上网冲浪还真是不错.不过好马也 ...

  4. 【巨人的肩膀上制造世界】——10——Unity3D实用插件之Vectrosity,轻松便捷的实现2D/3D画线功能

    [巨人的肩膀上制造世界]--10--Unity3D实用插件之Vectrosity,轻松便捷的实现2D/3D画线功能 目录 1.博客介绍 2.内容 (1)编辑器预制线条 (2)编辑器修改线条 (3)线条 ...

  5. 【教程转载】 火狐浏览器 实用插件一览(附插件下载地址)

    [教程转载] 火狐浏览器 实用插件一览(附插件下载地址)简单介绍一下: 火狐浏览器(firefox)最大的优点就是安全.快速.稳定. 有些人抱怨火狐的功能太少,有些网页不能正常浏览. 没关系,这些都不 ...

  6. Maya的一些实用插件——记录分享篇

    Maya的一些实用插件分享篇 前言 一.MayaToRizomUV(展uv) 二.Bonus Tools 1.介绍 2.下载安装 3.使用 三.Quad Remesher(模型一键拓扑) 1.介绍 2 ...

  7. idea引用eclipse快捷键和一些实用插件

    idea引用eclipse快捷键 Ctrl+1快速修复(最经典的快捷键,就不用多说了) Ctrl+D:删除当前行 Ctrl+Alt+↓复制当前行到下一行(复制增加) Ctrl+Alt+↑复制当前行到上 ...

  8. phpstom 驼峰插件_推荐四个phpstorm酷炫实用插件 让你写代码的时候不在孤单!

    PHP PHP开发 PHP语言 推荐四个phpstorm酷炫实用插件 让你写代码的时候不在孤单! 程序员写代码很孤独,每天只能和电脑屏幕交流,想要一个程序员鼓励师妹子,老板又不给配,如何让自己写代码的 ...

  9. 【开发工具】盘点IDEA那些超级实用插件

    今天给大家分享IDEA那些超级实用插件,欢迎收藏! 1.日晒主题 Solarized Themes 推荐指数:☆☆☆☆☆ 推荐理由:日晒主题本身是为vim定制的.后来移植到ide 非常酷!配色非常耐看 ...

最新文章

  1. L1,L2正则化分析
  2. [云炬创业基础笔记]第五章创业机会评估测试3
  3. android6.0源码分析之Camera API2.0下的Preview(预览)流程分析
  4. 【NLP】业界总结 | BERT的花式玩法
  5. illustrator下载_Illustrator笔工具练习
  6. dex工具与transform_Android Studio打包程序时出现transformClassesWithDexForRelease错误
  7. soapui 证书_SoapUI入门之附件上传和配置Https请求
  8. 《Elasticsearch 源码解析与优化实战》样章-第 6 章 数据模型
  9. Python的Base64编码图片(转载)
  10. win10系统下载 Ghost Win10 RS1 1607 32位纯净3月版
  11. Veeam 安装部署 - 部署 Veeam Backup Replication
  12. Cobalt Strike 的 Beacon 使用介绍以及 Profile 文件修改Beacon内存教程
  13. 天创速盈带你了解拼多多新店运营技巧
  14. 【实战项目惜时App需求分析说明书】Vue-cli3+Vant UI+Vue-element-admin+Egg.js+Mysql
  15. MySql的详细安装与配置步骤
  16. 替换=(等于号)正则表达式
  17. 【密码学】古代、古典密码
  18. fastdfs和其他文件系统区别
  19. 天府一品 茶叶商城平台 uni app 开发总结 H5商城
  20. js实现网页的过滤打印(去掉你不想出现的内容)

热门文章

  1. 快速解析大xml报文
  2. C#:继承过程中的静态成员
  3. angular的性能分析 -随记
  4. android深度探索 HAL及驱动开发 第八章
  5. unity中发布android时候出现这样的提示错误:error:device not found
  6. MSSQL 2005 分页分析及优化(转)
  7. easyui-datebox禁止手动输入
  8. Android 活体人脸实时采集,百度、虹软
  9. jsp mysql做登入界面_用jsp实现网站登录界面的制作,并连接数据库
  10. (一)elasticsearch6.1.1安装详细过程