namespace TestAPI
{
public class data
{
public test weatherinfo { get; set; }
}
}
namespace TestAPI
{
public class test
{
public string city { get; set; }
public string cityid { get; set; }
public string temp { get; set; }
public string WD { get; set; }
public string WS { get; set; }
public string SD { get; set; }
public string AP { get; set; }
public string njd { get; set; }
public string WSE { get; set; }
public string time { get; set; }
public string sm { get; set; }
public string isRadar { get; set; }
public string Radar { get; set; }
}
}
namespace TestAPI
{
public partial class WebForm1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
data t = new TestAPI.data();
t = JsonConvert.DeserializeObject<data>(str());
String AP = t.weatherinfo.AP;
Response.Write(JsonConvert.SerializeObject(t));
//string tianqiJieshou = "{\"weatherinfo\":{\"city\":\"北京\",\"cityid\":\"101010100\",\"temp\":\"27.9\",\"WD\":\"南风\",\"WS\":\"小于3级\",\"SD\":\"28%\",\"AP\":\"1002hPa\",\"njd\":\"暂无实况\",\"WSE\":\"<3\",\"time\":\"17:55\",\"sm\":\"2.1\",\"isRadar\":\"1\",\"Radar\":\"JC_RADAR_AZ9010_JB\"}}";
//首先创建一个天气的模型接受city之后的数据
//创建一个名字为weatherinfo的字段,接受这些信息
//test tianqi = new test();
//t.weatherinfo = tianqi;
//tianqi.AP = "1";
//tianqi.city = "10010";
//string ssa = JsonConvert.SerializeObject(t);
//string aaa = "";
}
private string str()
{
string str = "";
string URL = "http://www.weather.com.cn/data/sk/" + (int)city.北京 + ".html";
HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(URL);
req.Method = "Get";
using (HttpWebResponse rsp = (HttpWebResponse)req.GetResponse())
{
StreamReader sw = new StreamReader(rsp.GetResponseStream());
str = sw.ReadToEnd();
return str;
}
}
}
public enum city
{
北京 = 101010100,
海淀 = 101010200,
朝阳 = 101010300,
顺义 = 101010400,
怀柔 = 101010500,
通州 = 101010600,
昌平 = 101010700,
延庆 = 101010800,
丰台 = 101010900,
石景山 = 101011000,
大兴 = 101011100
}
}
var test = JSON.stringify({ "a": "1", "b": "2" });//
var testPare=JSON.parse(test);
在jQuery中JSON.stringify是把实体转化为数据,序列化
JSON.parse 把类型转化为object对象,反序列化
利用Newtonsoft.json 序列化反序列化.
天气API返回的数据存在了Test模型中,然后使用
HttpWebReques接受API中数据,
使用JsonConvert.DeserializeObject反序列化
使用JsonConvert.SerializeObject序列化
另City类转自一位博友的,在回头找就找不到了,一脸尴尬