zoukankan      html  css  js  c++  java
  • 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 作者:卷猫
     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":"u5c81u7eb3u4eacu5b50"},"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是很强大的. 

  • 相关阅读:
    HDU
    2019CCPC秦皇岛自我反省&部分题解
    图论之二分图相关内容
    图论之一般图相关内容
    2019 南昌ICPC网络赛H The Nth Item
    HDU 5486 Difference of Clustering 暴力模拟
    图论之tarjan真乃神人也,强连通分量,割点,桥,双连通他都会
    数论之二次剩余
    没有哈密瓜只有哈密顿----图论之哈密顿回路
    面试题整理:C#(二)
  • 原文地址:https://www.cnblogs.com/wgale025/p/6121703.html
Copyright © 2011-2022 走看看