zoukankan      html  css  js  c++  java
  • 将指定的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

  • 相关阅读:
    分布式事务的解决方案
    普通平衡树(bzoj 3224)
    [学习笔记] 树链剖分
    矩阵树定理——矩阵树不是树
    哈夫曼树
    SDOI2018一轮NOI培训 题目整理
    Luogu P1119 灾后重建
    轻量级ORM框架——第二篇:Dapper中的一些复杂操作和inner join应该注意的坑(转)
    单点登录的设计与实现
    PHP如何进阶,提升自己
  • 原文地址:https://www.cnblogs.com/Julietma/p/4959736.html
Copyright © 2011-2022 走看看