博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Wp7客户端与Webservice的数据传输,json的序列化与反序列化
阅读量:5077 次
发布时间:2019-06-12

本文共 2418 字,大约阅读时间需要 8 分钟。

首先是一个json序列化与反序列化的的帮助类(不记得是看博客园哪个大神的了。。):

public class JsonHelper    {            public static string JsonSerializer
(T t) { DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T)); MemoryStream ms = new MemoryStream(); ser.WriteObject(ms, t); string jsonString = Encoding.UTF8.GetString(ms.ToArray()); ms.Close(); return jsonString; } public static T JsonDeserialize
(string jsonString) { DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T)); MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonString)); T obj = (T)ser.ReadObject(ms); return obj; } }

一个实体类:

public class WeatherInfo    {        public string CityName { get; set; }        public string Date { get; set; }    }

 

服务端代码:

[WebMethod(Description = "返回信息")]        public string getJson(String city)        {            WeatherInfo weather = new WeatherInfo();            weather.CityName = city;            weather.Date = Date.Now.ToString();            string jsonString = JsonHelper.JsonSerializer
(weather); return jsonString; }

客户端代码:

public void GetForecast(string city)        {            WebClient client = new WebClient();            client.OpenReadAsync(new Uri("http://localhost/Weather.asmx/getJson?city=" + city                + "&time=" + DateTime.Now.ToString("yyyyMMddHHmmss"),UriKind.RelativeOrAbsolute));            client.OpenReadCompleted += new OpenReadCompletedEventHandler(client_OpenReadCompleted);        }
void client_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)        {            try            {                XElement xmlWeather;                xmlWeather = XElement.Load(e.Result);                WeatherInfo weatherInfo = new WeatherInfo();                weatherInfo = JsonHelper.JsonDeserialize
(xmlWeather.Value); //Debug.WriteLine(weatherInfo.CityName); } catch (Exception) { Deployment.Current.Dispatcher.BeginInvoke(() => { MessageBox.Show("数据获取出错。"); }); } }

这样就实现了webservice相应wp7app请求并返回数据的过程。

转载于:https://www.cnblogs.com/liubaicai/archive/2012/05/16/2505519.html

你可能感兴趣的文章
[转]在视图中使用递归生成树状结构
查看>>
[转]npm、 cnpm、yarn
查看>>
我的个人网站
查看>>
Unqualified name lookup
查看>>
sql with as 用法
查看>>
设计模式之简单工厂模式(静态工厂方法)
查看>>
Django CMS 安装
查看>>
JS包装对象
查看>>
(二)centOS安装rabbitmq
查看>>
滑杆(JSlider)和进度指示条(JProgressBar) 的使用
查看>>
利用canvas实现抽奖转盘
查看>>
.net 进阶学习 WebApi (1)
查看>>
[C#] 使用 StackExchange.Redis 封装属于自己的 RedisHelper
查看>>
1.Mysql简介
查看>>
securt 延期
查看>>
第3节 mapreduce高级:10、11、分组求取topN
查看>>
ACM题目————STL练习之字符串替换
查看>>
Luogu3243 [HNOI2015]菜肴制作 (拓扑排序)
查看>>
Mysql数据类型《一》整数类型
查看>>
ex24更多练
查看>>