• 将指定的Json字符串转为指定的T类型对象(转帖)


    【HttpHelper万能框架】教程目录贴  http://www.sufeinet.com/thread-9989-1-1.html

    在我们使用万能框架抓取数据时,我相信用的最多的一种格式可能就是Json格式了。因为大部分Ajax是采用的这种格式。
    今天万能框架帮助您实现一个将Json转为对象的方法。
    也就是说根据Json要吧自动生成一个对象出来。
    大家就可以随意的调用了。
    再也不用对疼使用正则怎么分析了。
    使用之前先引用命名空间

    01
    using CsharpHttpHelper;

    1.先来看一下简单类型的Json数据
    Json数据如下

    01
    02
    03
    04
    05
    {
        "Stationmaster": "苏飞",
        "Domain": "www.sufeinet.com",
        "SiteName": "苏飞论坛"
    }
    如果要得到一个对象,那么我们得先定义这样一个类,对应的类文件如下
    01
    02
    03
    04
    05
    06
    07
    08
    09
    10
    11
    12
    13
    14
    15
    public class SiteInfo
        {
            /// <summary>
            /// 网站站长
            /// </summary>
            public string Stationmaster { get; set; }
            /// <summary>
            /// 网站域名
            /// </summary>
            public string Domain { get; set; }
            /// <summary>
            /// 网站名称
            /// </summary>
            public string SiteName { get; set; }
        }
    下面看看万能框架是怎么帮助我们转化的吧
    01
    02
    03
    string strjson = "{"Stationmaster":"苏飞","Domain":"www.sufeinet.com","SiteName":"苏飞论坛"}";
     
    SiteInfo objjson = (SiteInfo)HttpHelper.JsonToObject<SiteInfo>(strjson);

    执行效果



    很简单吧。

    这个只是一个简单Json数据类型
    2.复杂Json类型也是一样解析
    比如如下Json格式


    01
    02
    03
    04
    05
    06
    07
    08
    09
    10
    11
    12
    13
    14
    15
    16
    17
    [
        {
            "Stationmaster": "苏飞",
            "Domain": "www.sufeinet.com",
            "SiteName": "苏飞论坛"
        },
        {
            "Stationmaster": "李彦宏",
            "Domain": "www.baidu.com",
            "SiteName": "百度"
        },
        {
            "Stationmaster": "马云",
            "Domain": "www.taobao.com",
            "SiteName": "淘宝"
        }
    ]
     
    这个增长了吧。也是一样解析,看下面方法当然这个还是使用上面的那个类。只是现在是一个集合。代码如下
    01
    02
    03
    04
    05
    06
    07
    08
    09
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    StringBuilder sb = new StringBuilder();
    sb.Append("[");
    sb.Append("    {");
    sb.Append("        "Stationmaster": "苏飞",");
    sb.Append("        "Domain": "www.sufeinet.com",");
    sb.Append("        "SiteName": "苏飞论坛"");
    sb.Append("    },");
    sb.Append("    {");
    sb.Append("        "Stationmaster": "李彦宏",");
    sb.Append("        "Domain": "www.baidu.com",");
    sb.Append("        "SiteName": "百度"");
    sb.Append("    },");
    sb.Append("    {");
    sb.Append("        "Stationmaster": "马云",");
    sb.Append("        "Domain": "www.taobao.com",");
    sb.Append("        "SiteName": "淘宝"");
    sb.Append("    }");
    sb.Append("]");
     
    List<SiteInfo> jsonlist = (List<SiteInfo>)HttpHelper.JsonToObject<List<SiteInfo>>(sb.ToString());
    执行效果如下



    有了这个方法,以后大家如果再需要解析Json,只需要定义好对象的类就Ok了。

    在线根据Json生成T类型的方法

    http://tool.sufeinet.com/Creater/JsonClassGenerator.aspx

  • 相关阅读:
    哈工大中文篇章关系语料
    MongoDB学习笔记~关于官方驱动集成IQueryable之后的一些事
    MongoDB学习笔记~为IMongoRepository接口更新指定字段
    MongoDB学习笔记系列
    MongoDB学习笔记~为IMongoRepository接口添加了增删改方法,针对官方驱动
    MongoDB学习笔记~为IMongoRepository接口添加了排序和表达式树,针对官方驱动
    Android NDK入门实例 计算斐波那契数列二生成.so库文件
    Spring Autowire自动装配
    在gem5的full system下运行 alpha编译的测试程序 running gem5 on ubuntu in full system mode in alpha
    工厂三兄弟之抽象工厂模式(二)
  • 原文地址:https://www.cnblogs.com/Julietma/p/4959736.html
Copyright © 2020-2023  润新知