asp.net如何加快页面加载(三)——浅谈正则应用

1 篇文章 0 订阅
1 篇文章 0 订阅

在这一两年内数据存储以json格式风靡全球。各个大大小小的网站都会使用json格式来存储一些细节或只读(非查询筛选条件)的信息。而在c#后台代码读取json 格式转化为Datatable或者其他对象,json字符串数据提取某些值时都显得极其繁琐。

现在我们看看使用最原始的办法(数组分拆法)提取json字符串数据提取某些值:

示例1:假设我们有一个数据存储的是网站信息:

        string txtRent = @"{'网站名称':'脑球','网站地址':'http://www.naoqiu.com','IP':'192.168.0.1','综合排名':'没有排名数据'},
       {'网站名称':'家常菜谱','网站地址':'http://shipu.naoqiu.com','IP':'192.168.0.2','综合排名':'12345678'},
       {'网站名称':'公交查询网','网站地址':'http://bus.naoqiu.com','IP':'192.168.1.2','综合排名':'12345678'}";

       接下来我们得从这些信息中获取网站地址,数组分拆法代码如下:

        /// <summary>
        /// 数组分拆法
        /// </summary>
        /// <returns></returns>
        public static string[] GetRentInfo()
        {
            string txtRent = @"{'网站名称':'脑球','网站地址':'http://www.naoqiu.com','IP':'192.168.0.1','综合排名':'没有排名数据'},
{'网站名称':'家常菜谱','网站地址':'http://shipu.naoqiu.com','IP':'192.168.0.2','综合排名':'12345678'},
{'网站名称':'公交查询网','网站地址':'http://bus.naoqiu.com','IP':'192.168.1.2','综合排名':'12345678'}";
            string[] items = txtRent.TrimEnd('}').Split('}');
            string[] newItems=new string[items.Length];
            int i = 0, index = 0;
            string tem;
            foreach (string s in items) {
                index = s.IndexOf("网站地址");
                tem = s.Substring(index + 7);
                newItems[i++] = tem.Split('\'')[0];
            }
            return newItems;
        }

这种方法虽然可以实现功能,但似乎代码写得有些繁杂,执行效率底,那我们怎么样来提高代码的提高效率,以及简洁性? 答案是有的,使用正则来获取相应的数据:

        /// <summary>
        /// 正则基础应用
        /// </summary>
        /// <returns></returns>
        public static string[] GetInfo_Domain() {
            string txtRent = @"{'网站名称':'脑球','网站地址':'http://www.naoqiu.com','IP':'192.168.0.1','综合排名':'没有排名数据'},
{'网站名称':'家常菜谱','网站地址':'http://shipu.naoqiu.com','IP':'192.168.0.2','综合排名':'12345678'},
{'网站名称':'公交查询网','网站地址':'http://bus.naoqiu.com','IP':'192.168.1.2','综合排名':'12345678'}";
            MatchCollection matches = Regex.Matches(txtRent, @"(?<=网站地址\'\:\')[^\']+");
            string[] newItems=new string[matches.Count];
            int i = 0;
            foreach (Match m in matches) {
                newItems[i++] = m.Value;
            }
            return newItems;
        }

总结:看到这个方法是否觉得正则好方便!正则的应用非常广泛,比如网页内容的提取。下个章节讲解通过正则自定义完成json与DataTable互转。

网上的资源及本文参考文献


当然还有微软的.NET中实现JSON的API

如果你想用net json 的api可以看看这篇文章:http://www.cnblogs.com/litongtong/archive/2008/01/12/1036312.html



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值