json的序列化与反序列化

本文介绍了一个使用C#实现的天气API解析过程,通过Newtonsoft.Json库进行数据的序列化和反序列化。文章详细展示了如何从指定URL获取天气数据,使用HttpWebRequest请求数据,并将返回的JSON字符串转换为C#对象。此外,还提供了如何将C#对象序列化回JSON字符串的方法。
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类转自一位博友的,在回头找就找不到了,一脸尴尬

  

转载于:https://www.cnblogs.com/dcrBook/p/9768097.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值