有时候,我们在调用别人接口的时候,服务端返回了一个json格式的字符串,我们要获取json里面的数据的话一般有两种方式:

1.通过正则 2.反序列化成一个对象 第一种方式这里不再多说,主要说一下第二种,(为什么呢,你看到后面 你也会喜欢上第二种)

有人肯定会说, json字符串万一很长,很复杂,我一个个去写类????有这个功夫 我用个正则 程序都已经写完了,你还在写对应的类. 是的,我之前也是通过正则的方式获取想要的数据,因为第二种方式,我们创建与json相对应的类的话 如果json很复杂,那是相当麻烦的一件事. 但是我今天要介绍的是vs的功能,让vs帮我们创建与json对应的类,一秒完成.提升了我们N倍的开发效率.  下面来看看吧!

首先,我这里来一个json格式的字符串. 该json字符串是百度贴吧签到返回的json

{"no":0,"error":"","data":{"errno":0,"errmsg":"success","sign_version":2,"is_block":0,"finfo":{"forum_info":{"forum_id":5077715,"forum_name":"newgame"},"current_rank_info":{"sign_count":820}},"uinfo":{"user_id":2710692001,"is_sign_in":1,"user_sign_rank":820,"sign_time":1472346974,"cont_sign_num":1,"total_sign_num":3,"cout_total_sing_num":3,"hun_sign_num":2,"total_resign_num":0,"is_org_name":0}}}

是不是非常的复杂,正则写起来也是有点麻烦的,根据这个json创建相对应的类的话 更麻烦,现在我们让vs帮我们自动创建,

1.复制这一段json格式的字符串 2.打开vs 创建一个类. 创建完毕后,点击vs左上方的编辑=>选择性粘贴=>将json粘贴为类

3.一秒不到的时间vs已经帮我们生成了对应的类

 1 著作权归作者所有。
2 商业转载请联系作者获得授权,非商业转载请注明出处。
3 作者:卷猫
6
7 public class Rootobject
8 {
9 public int no { get; set; }
10 public string error { get; set; }
11 public Data data { get; set; }
12 }
13  
14 public class Data
15 {
16 public int errno { get; set; }
17 public string errmsg { get; set; }
18 public int sign_version { get; set; }
19 public int is_block { get; set; }
20 public Finfo finfo { get; set; }
21 public Uinfo uinfo { get; set; }
22 }
23  
24 public class Finfo
25 {
26 public Forum_Info forum_info { get; set; }
27 public Current_Rank_Info current_rank_info { get; set; }
28 }
29  
30 public class Forum_Info
31 {
32 public int forum_id { get; set; }
33 public string forum_name { get; set; }
34 }
35  
36 public class Current_Rank_Info
37 {
38 public int sign_count { get; set; }
39 }
40  
41 public class Uinfo
42 {
43 public long user_id { get; set; }
44 public int is_sign_in { get; set; }
45 public int user_sign_rank { get; set; }
46 public int sign_time { get; set; }
47 public int cont_sign_num { get; set; }
48 public int total_sign_num { get; set; }
49 public int cout_total_sing_num { get; set; }
50 public int hun_sign_num { get; set; }
51 public int total_resign_num { get; set; }
52 public int is_org_name { get; set; }
53 }

4.我们使用的话只要进行反序列化就可以了

著作权归作者所有。
商业转载请联系作者获得授权,非商业转载请注明出处。
作者:卷猫 string json = "{\"no\":0,\"error\":\"\",\"data\":{\"errno\":0,\"errmsg\":\"success\",\"sign_version\":2,\"is_block\":0,\"finfo\":{\"forum_info\":{\"forum_id\":2781305,\"forum_name\":\"\u5c81\u7eb3\u4eac\u5b50\"},\"current_rank_info\":{\"sign_count\":307}},\"uinfo\":{\"user_id\":2710692001,\"is_sign_in\":1,\"user_sign_rank\":307,\"sign_time\":1472345473,\"cont_sign_num\":1,\"total_sign_num\":2,\"cout_total_sing_num\":2,\"hun_sign_num\":1,\"total_resign_num\":0,\"is_org_name\":0}}}";
 
Rootobject o = new System.Web.Script.Serialization.JavaScriptSerializer().Deserialize(json, typeof(Rootobject)) as Rootobject;
Console.WriteLine(o.data.errmsg);
Console.WriteLine(o.no);
Console.ReadKey();

是不是很方便呢0.0.比正则方便多了吧 你还在写正则的时候,我已经获取到了数据 哈哈哈,vs是很强大的.

vs里根据json快速创建对应类的方法的更多相关文章

  1. 一种从JSON数据创建Java类的高效办法

    <一种从JSON数据创建Java类的高效办法> 作者:chszs,转载需注明.博客主页:http://blog.csdn.net/chszs JSON格式的数据经常会遇到,比如调用Web服 ...

  2. idea快速创建一个类 实现一个接口

    一 创建一个接口类 二  点击接口名称 按alt + ent 三 选择implement interface 选项 完美!!!!!!!

  3. 【Linux】快速创建文件的命令方法

    [root@centos7 dir1]# ll total 0 -rw-r--r-- 1 root root 0 Aug 15 02:39 file1 -rw-r--r-- 1 root root 0 ...

  4. 快速创建你xmlhttp的方法

    function initxmlhttp() {     var xmlhttp     try {         xmlhttp=new ActiveXObject("Msxml2.XM ...

  5. 【转】C#中将JSon数据转换成实体类,将实体类转换成Json

    http://wo13145219.iteye.com/blog/2022667 http://json2csharp.chahuo.com/ using System; using System.C ...

  6. Android随笔之——Android时间、日期相关类和方法

    今天要讲的是Android里关于时间.日期相关类和方法.在Android中,跟时间.日期有关的类主要有Time.Calendar.Date三个类.而与日期格式化输出有关的DateFormat和Simp ...

  7. GreenDao 工具类 --- 使用 Json 快速生成 Bean、表及其结构,"炒鸡"快!

    作者:林冠宏 / 指尖下的幽灵 掘金:https://juejin.im/user/587f0dfe128fe100570ce2d8 博客:http://www.cnblogs.com/linguan ...

  8. 通过Visual Studio快速生成Json或XML反序列化类代码

    Visual Studio不愧是宇宙第一强的IDE工具,在Json.XML格式漫天飞.反序列化需求遍地走的现在,居然到最近才知道原来微软已经在Visual Studio集成了这么一样的良心功能,自动根 ...

  9. 于快速创建 IEqualityComparer<T> 实例的类 Equality<T>

    于快速创建 IEqualityComparer<T> 实例的类 Equality<T> 原文中的 Equality<T> 实现如下: 1 2 3 4 5 6 7 8 ...

随机推荐

  1. vs2017 rc 离线安装包制作

    vs2017 rc 离线安装包制作 1.下载在线安装包:https://aka.ms/vs/15/release/vs_Enterprise.exe 2.制作离线安装包: vs_Enterprise. ...

  2. switch 方法 计算器

    <script type="text/javascript"> var d; var a = prompt("输入一个数字"); a = parse ...

  3. C#-WebForm-简单控件

    在HTML中称"元素",添加了"runat='server'"后称控件,后台服务端可以控制 想要后台改变前端的控件,需要先让后台获取前端控件 常用的简单的表单元 ...

  4. linux 压缩包覆盖问题

    最近提交代码自动化构建发布的时候,出现了之前被删除的代码还是被打包发布了的问题. 流程是这样,jenkins通过定时任务获取git的提交,检测到有新提交时,就把代码拉下来通过maven进行build. ...

  5. <form:select>的使用

    最近在学习springMVC,用到了<form:select>标签,使用发过程中遇到了些问题,现在记录下,以防忘记. 我jsp页面是这样的: <%@ page language=&q ...

  6. a版本十日冲刺总汇

    DAY ONE: http://www.cnblogs.com/aruba/p/6041243.html 2016-11-08 DAY TWO: http://www.cnblogs.com/arub ...

  7. bzoj1415[NOI2005]聪聪和可可

    之前做的一些图上的期望步数的题大多用到高斯消元来求解(HNOI游走,SDOI走迷宫,etc),因此我一开始做这道题的时候想偏了- 这道题的性质:聪聪和可可之间的最短路长度严格递减.因为聪聪总可以多走一 ...

  8. 如何修改SharePoint2013服务器场帐号密码

    服务器远程登录帐号密码修改密码后,如何修改sharepoint服务器场管理员账户密码,今天登录了一下N久以前的搭建sharepoint2013服务器场的一台服务器器,登录进去以后直接提示帐号密码过期需 ...

  9. Selenium+python 配置

    1. 安装python, www.python.org. 下载最新的python,应该是32位的.注意配置环境变量. 2. 安装PIP(pip是一个以Python计算机程序语言写成的软件包管理系统). ...

  10. Navicat Premium 的常用功能

    1.快捷键 1.1. F8 快速回到当前对象列表 1.2. Ctrl + q 打开查询界面 1.3. Ctrl + d 快速修改当前的表结构 1.4. Ctrl + r 运行当前查询界面里面的 sql ...