将指定的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

转载于:https://www.cnblogs.com/Julietma/p/4959736.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值