nintenyun

导航

处理糯米网API

团购网站提供了很多API,写了个程序模拟调用某团购网站的API。

NuoMiTojson.aspx
public partial class NuoMiTojson : System.Web.UI.Page
    {
        StringBuilder sb = new StringBuilder();
        List<string> urllist = new List<string>();
        List<string> citylist = new List<string>();
        List<string> titlelist = new List<string>();
        List<string> pricelist = new List<string>();

        protected void Page_Load(object sender, EventArgs e)
        {
            
  
            string url = "http://www.nuomi.com/api/dailydeal?version=v1&city=shanghai";// 制定API地址
            string getStr = string.Empty;
            WebClient myWeb = new WebClient();//新建 webclint对象
            myWeb.Encoding = Encoding.GetEncoding("GB2312");//设定中文编码
            Stream stream = myWeb.OpenRead(url);
            StreamReader streamReader = new StreamReader(stream);
            getStr = streamReader.ReadToEnd();
            XmlDocument doc = new XmlDocument();
            doc.LoadXml(getStr);//string to XML
            XmlNodeList xmlist = doc.GetElementsByTagName("url");
            foreach (XmlNode node in xmlist)
            {
                if (node.HasChildNodes)//如果XML有子节点 ,调用travelsonnode()
                {
                    travelSonNode(node);
                }
                nodePrase(node);
            }

            List<NuoMiEntity> list = buildObject();
            string readyString = reponseToPage(list);
            string responseString = "[" + readyString + "]";
            Response.Write(responseString);
        }

        private void travelSonNode(XmlNode node)
        {
            XmlNodeList childNode =  node.ChildNodes;
            foreach (XmlNode childnodes in childNode)
            {

                if (childnodes.HasChildNodes)//如果子节点还有子节点,递归
                {
                    travelSonNode(childnodes);
                }
                nodePrase(childnodes);
            }
        }

        private void nodePrase(XmlNode node)//进行xml提取
        {
            string name = node.Name;
            string value = node.InnerText;
          
            switch (name)
            {
                case "siteurl": urllist.Add(value);
                    break;
                case "city": citylist.Add(value);
                    break;
                case "title": titlelist.Add(value);
                    break;
                case "price": pricelist.Add(value);
                    break;
            }
          
        }

        private List<NuoMiEntity> buildObject()
        {
            List<NuoMiEntity> nuomilist = new List<NuoMiEntity>();
            for (int i = 0; i < urllist.Count; i++)
            {
                string url = urllist[i];
                string city = citylist[i];
                string title = titlelist[i];
                string price = pricelist[i];
                NuoMiEntity nuomi = new NuoMiEntity();
                nuomi.siteurl = url;
                nuomi.price = price;
                nuomi.title = title;
                nuomi.city = city;
                nuomilist.Add(nuomi);
            }
            return nuomilist;
        }

        private string reponseToPage(List<NuoMiEntity> list)
        {
           
            
            foreach (NuoMiEntity nuomi in list)
            {
                if (sb.Length > 0) sb.Append(",");
                string s = JsonUtil.ToJsJson(nuomi);
                sb.Append(s);
            }
            return sb.ToString();
        }


    }

JS

<script type="text/javascript">
     $(document).ready(function()
     {
     
       $.get("NuoMiTojson.aspx",function(data)//jquery ajax请求
       {
          json = stringTojson(data);
          for(var i=0;i<json.length;i++)
          {
             $("#div").append("<p>" + json[i].city + "</p>");
             $("#div").append("<p>" + json[i].title + "</p>" );
             $("#div").append("<p>" + json[i].price +"元</p>" );
             $("#div").append("---------------------------------------------------------------------");
          }
       });
       
     });
 
    function stringTojson(json) {
       return eval("(" + json + ")"); 
    }

</script>

工具类

using System.Collections.Generic;
using System.IO;
using System.Runtime.Serialization.Json;
using System.Text;


namespace AjaxPost
{
    public static class JsonUtil
    {
        public static string ToJsJson(this object item)
        {
            DataContractJsonSerializer serializer = new DataContractJsonSerializer(item.GetType());

            using (MemoryStream ms = new MemoryStream())
            {
                serializer.WriteObject(ms, item);

                StringBuilder sb = new StringBuilder(1024);

                sb.Append(Encoding.UTF8.GetString(ms.ToArray()));

                return sb.ToString();
            }
        }
    }
}

nuomi实体类 

1 using System;
2  using System.Collections.Generic;
3  using System.Linq;
4  using System.Text;
5  using System.Runtime.Serialization;
6
7  namespace AjaxPost
8 {
9 [DataContract]
10 public class NuoMiEntity
11 {
12 [DataMember]
13 public string siteurl { get; set; }
14 [DataMember]
15 public string title { get; set; }
16 [DataMember]
17 public string city { get; set; }
18 [DataMember]
19 public string price { get; set; }
20 }
21 }

结果


上海

特惠电影票凶猛来袭!同样的超优音效,同样的超舒适观影环境,不一样的价格!仅需39元即可享受新上海影都原价130元双人观影套票:电影票2张+爆米花1袋或矿泉水2瓶(500ml)!无时段限制!全场通兑(含3D)!超低的价格,同样的视听盛宴!6月电影全扫荡!

39元

---------------------------------------------------------------------
上海

爱美的mm看过来!品牌商独家体验价发售,颠覆『冬天才用绵羊油』的传统理念! 世博会澳馆卖得超火爆的绵羊油开团啦!Chantelle香娜露儿羊胎素绵羊油/葡萄籽绵羊油100ml,原价88元,糯米网仅售29.9元!上海地区包邮!清爽不油腻,24小时持久保湿,舒缓皮肤,减少皱纹,延缓衰老!

29.9元

---------------------------------------------------------------------
上海

仅39.9元!婵真银杏天然泡沫洗面奶200G(超大容量)!原价135元!细腻丰富的泡沫,无敌的清洁力,让你的肌肤零负担! 萃取自天然银杏叶,散发淡淡银杏清香,质地温和无刺激,适合各种肤质人群。红孩子旗下 binggo网,你的缤纷网购生活!一瓶即包邮!

39.9元

---------------------------------------------------------------------
上海

仅1元,领取『emoi基本生活』10元代金券,家居、服饰、文具、箱包四大类品类任你逛!我们爱生活,我们是生活的达人!emoi基本生活会员享受会员折扣后仍有机会使用代金券。数量有限,派完为止!

1元

---------------------------------------------------------------------
上海

仅85元!抢购原价89美元(折合人民币599元)的德国Woody Click木制场景拼搭玩具(城市套装、飞机套装、农场套装,三款任选)!每个场景都有100个配件,重约4公斤!国际顶级品质!产品通过了EN71、ASTM等国际测试!给宝宝最安全最放心的产品!给孩子一个充满快乐的六一!欧美原包装送礼绝对大气上档次!

85元

---------------------------------------------------------------------
上海

雷柏正品大抢购!128元即享原价199元雷柏H6000无线耳机一个(黑/蓝/灰三色任选)!115元即享原价168元雷柏3500无线鼠标一个!(酷黑/珍珠银/铁石灰三色任选)!仅限江浙沪地区购买!仅需5元邮费!数量有限,先到先得!

128元

---------------------------------------------------------------------
上海

零食大作战!『姚太太』夏日香口零食大礼包来了!仅需55元/29.9元,即享原价97.5元/52.2元零食A/B大礼包!A礼包:山椒凤爪+美味猪肉脯+开心果+九制丁香榄+大杏仁!B礼包:西梅+酸枣糕+香辣花生+原味瓜子+美味猪肉脯+沙嗲牛肉!

29.9元

---------------------------------------------------------------------
上海

舒蕾给秀发带来360度拥抱+100%强韧呵护!仅69.9元享原价109.7元舒蕾小麦强韧组合:舒蕾小麦强韧洗发露800ml+ 舒蕾小麦润发精华素400ml+美涛丰盈弹力素180g!高浓纯滋养配方,多加50%天然水解小麦蛋白!江浙沪地区包邮!这次,就和受损秀发say goodbye!

69.9元

posted on 2011-05-25 13:45  nintenyun  阅读(665)  评论(2)    收藏  举报