vs里根据json快速创建对应类的方法

Posted 琴吹䌷

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vs里根据json快速创建对应类的方法相关的知识,希望对你有一定的参考价值。

有时候,我们在调用别人接口的时候,服务端返回了一个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 作者:卷猫
 4 链接:http://anneke.cn/ArticleInfo/Detial?id=9
 5 来源:Anneke.cn
 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.我们使用的话只要进行反序列化就可以了

著作权归作者所有。
商业转载请联系作者获得授权,非商业转载请注明出处。
作者:卷猫
链接:http://anneke.cn/ArticleInfo/Detial?id=9
来源:Anneke.cn

 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快速创建对应类的方法的主要内容,如果未能解决你的问题,请参考以下文章

VS Code一键创建Vue代码模板

在VS中快速生成Json或XML代码

不用创建项目,直接在VS里快速测试 C/C++ 代码。

vs2003:快速片段工具

VS中添加自定义代码片段——偷懒小技巧

vs code 用户代码片段 html.json