处理糯米网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元

浙公网安备 33010602011771号