原文:[Visual Studio]透过Visual Studio 2012的选择性贴上将XML与JSON直接转成对应的类别

在开发专案时若碰到要串接服务或是他人的API,常常避免不了都要面对XML或是JSON这两种Data Format。以.NET的开发者来说XML这边可以直接用Linq to XML或是XPath处理掉,JSON也可以透过JSON.NET避开产生对应的类别後去解序列化。但是难免总是会有些状况我们不得不面对这样的问题,这时若是是JSON的Format很多开发者可能就会使用json2csharp去辅助产生对应的类别。

?

不过其实我们可以不需要额外的网站辅助,也不需要劳心劳力的手动去建立。因为在Visual Studio 2012中新增了选择性贴上的功能,能将剪贴簿中的XML内容直接贴成对应的类别。

?

像是以土豆为例,我们呼叫API:

http://api.tudou.com/v3/gw?method=album.channel.get&appKey=myKey&format=xml&channel=z&pageNo=1&pageSize=10

?

取得的XML会长的像下面这样:

?

这时我们就可以在Visual Studio 2012中新增个类别档案去存放对应的类别。

?

按下[Edit/Paste Special]选单内的[Paste XML As Classes]选单选项。

?

剪贴簿内的XML内容就会被贴成对应的类别,像是下图这样:

?

如果API吐回的格式是JSON格式的话就比较麻烦一点,因为Visual Studio 2012尚未将这块内建,不过你可以加装ASP.NET and Web Tools

?

加装ASP.NET and Web Tools後,我们再次看一下[Edit/Paste Special]下的选单选项,可以看到除了本来的[Paste XML As Classes]选单选项外,又多了一个[Paste JSON As Classes]的选单选项。

?

这边一样用土豆为例,呼叫跟上面相同的API,但是将资料格式改为JSON。

http://api.tudou.com/v3/gw?method=album.channel.get&appKey=myKey&format=json&channel=z&pageNo=1&pageSize=10

?

按下[Edit/Paste Special]选单内的[Paste JSON As Classes]选单选项,可以看到如预期的Visual Studio 2012帮我们产生了对应的类别。

?

这样贴心的小功能是不是很方便呢?我们不在需要类似json2csharp这样的网站辅助开发,串接API时也只要取得API的回传值後用产生的类别解序列化,资料就可以直接透过物件下去存取。

?

这边最後一提,Web Essentials 2012也有类似的功能能辅助我们将JSON的资料转成对应的类别,有兴趣的可参阅Will保哥的影片介绍:

[Visual Studio]透过Visual Studio 2012的选择性贴上将XML与JSON直接转成对应的类别的更多相关文章

  1. 推荐SQL Server Management Studio以及Visual Studio下的免费的插件 ApexSQL Complete

    SQL Server 并没有代码格式化的工具,对于处理他人编写的长SQL需要手工的格式化是一件麻烦的事情. 推荐SQL Server Management Studio以及Visual Studio下 ...

  2. Co-Debugging JNI with Android Studio and Visual Studio

    Tutorials > Android > Integration with other tools > Co-Debugging JNI with Android Studio a ...

  3. Visual Studio 与 Visual C++ 关系

      Visual Studio .net Visual C++ .net Visual C++ _MSC_VER 备注 Visual Studio .net 2002 Visual C++ .net ...

  4. visual studio 和visual studio code 的区别是什么?

    区别有三: 区别一:含义不一样. Visual Studio(简称VS)是美国微软公司的开发工具包系列产品,是一个基本完整的开发工具集,它包括了整个软件生命周期中所需要的大部分工具,如UML工具.代码 ...

  5. 利用Vistual Studio自带的xsd.exe工具,根据XML自动生成XSD

    利用Vistual Studio自带的xsd.exe工具,根据XML自动生成XSD 1, 命令提示符-->找到vs自带的xsd.exe工具所在的文件夹 例如: C:\Program Files ...

  6. 【Android应用开发】Android Studio 简介 (Android Studio Overview)

    一. Intelij IDEA 环境简介 Android Studio 来源 : Android Studio 是 Intelij IDEA 的免费版本 + Android SDK 集成的; -- I ...

  7. [Visual Studio] 开启Visual Studio 2012通过右键菜单创建单元测试(Unit Test)

    Visual Studio 2012可以说是迄今为止微软VS开发工具中用户体验最好的产品,无论是速度还是体验以及功能,都非常出色,但是,使用了一段时间后发现有一个之前版本VS都有的功能却在Visual ...

  8. 如何在Visual Studio(VS)2012里使用libsvm工具箱

    原文:http://blog.csdn.net/u014691453/article/details/40393137 软件版本: Visual Studio版本:VS2012 (注:使用方法在 VS ...

  9. visual studio 2013快捷键与2012不同

    升级了Visual Studio2013后发现有些快捷键不能使用,于是自己尝试设置找回,还真给发现了: 依次选择(工具-->选项-->环境-->键盘)把映射方案改成Visual C# ...

随机推荐

  1. 黄聪:Microsoft Enterprise Library 5.0 系列教程(一) : Caching Application Block (初级)

    原文:黄聪:Microsoft Enterprise Library 5.0 系列教程(一) : Caching Application Block (初级) 本篇文章具体官方解释请参照以下链接: h ...

  2. Android在发送带有附件的邮件

    准备好工作了-下载最新的版本号JMail https://java.net/projects/javamail/pages/Home#Download_JavaMail_1.5.2_Release h ...

  3. 基于KMP与Levenshtein模糊匹配算法的银行联行号查询(转)

    在人民银行那里,每个银行的每一个营业网点都有自己唯一的银行联行号,根据这个号码能快速定位一间银行具体的分支行,就像根据一个身份证号码能快速确定一个人一样.例如汇款时,汇款单上要求填写收款人开户行,然后 ...

  4. OpenCV Haar AdaBoost源代码改进(比EMCV快6倍)

    这几天研究了OpenCV源代码 Haar AdaBoost算法,作了一下改进 1.去掉了全部动态分配内存的操作.对嵌入式系统有一定的速度提升 2.凝视覆盖了大量关键代码 3.降低了代码一半的体积,而且 ...

  5. Swing多线程编程(转)

    关键字: Swing,多线程,GUI,SwingWorker 摘要: 本文论述了怎样开发多线程的Swing程序,从而提高Swing程序的响应速度和性能.     近期,我将推出一系列研究Swing程序 ...

  6. Java 过滤器的作用

    Servlet API 非常久曾经就已成为企业应用开发的基石,而 Servlet 过滤器则是对 J2EE 家族的相对较新的补充.在 J2EE 探索者 系列文章的最后一篇中,作者 Kyle Gabhar ...

  7. 从最大似然到EM算法浅解

    从最大似然到EM算法浅解 zouxy09@qq.com http://blog.csdn.net/zouxy09 机器学习十大算法之中的一个:EM算法.能评得上十大之中的一个,让人听起来认为挺NB的. ...

  8. uva 11992 为矩阵更新查询段树

    http://uva.onlinejudge.org/index.php? option=com_onlinejudge&Itemid=8&page=show_problem& ...

  9. 打开 chm 帮助文件显示空白及解决方法

    有个很奇葩的解决方法:把 chm 文件用压缩软件压缩,然后用压缩软打开此压缩包,直接双击压缩包里面的 chm 文件 这虽然解决了问题,但是这不科学…… 分析:直接打开压缩包里面的文件,压缩包的文件是临 ...

  10. 表的顺序结构---重写Arraylist类

    重写ArrayList类,为防止冲突,重写为MyArrayList,未继承Iterable类. public class MyArrayList<AnyType>{ int N=10; A ...