Wp7客户端与Webservice的数据传输,json的序列化与反序列化
2012-05-16 22:53
441 查看
首先是一个json序列化与反序列化的的帮助类(不记得是看博客园哪个大神的了。。):
一个实体类:
服务端代码:
客户端代码:
这样就实现了webservice相应wp7app请求并返回数据的过程。
public class JsonHelper { public static string JsonSerializer<T>(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<T>(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<WeatherInfo>(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<WeatherInfo>(xmlWeather.Value); //Debug.WriteLine(weatherInfo.CityName); } catch (Exception) { Deployment.Current.Dispatcher.BeginInvoke(() => { MessageBox.Show("数据获取出错。"); }); } }
这样就实现了webservice相应wp7app请求并返回数据的过程。
相关文章推荐
- Android学习笔记---26_采用JSON格式返回数据给资讯客户端,效率上要高于xml文件解析和传输
- .net json数据序列化/反序列化
- C#json数据的序列化和反序列化(将数据转换为对象或对象集合)
- 【Unity&JSON】.net JSON 数组 序列化和反序列化,并 创建玩家数据列表
- Windows CE /SmartDeviceProject 操作Json数据实现对象序列化和反序列化
- 谈谈 webservice -- axis2框架的使用,JSON数据的传输问题
- fastjson生成和解析json数据,序列化和反序列化数据
- fastjson生成和解析json数据,序列化和反序列化数据
- fastjson生成和解析json数据,序列化和反序列化数据
- fastjson生成和解析json数据,序列化和反序列化数据
- WebService使用DataSetSurrogate压缩Dataset的序列化和解压反序列化传输 (转)
- .NET中JSON数据进行序列化和反序列化
- fastjson生成和解析json数据,序列化和反序列化数据
- .NET中JSON数据进行序列化和反序列化
- .net泛型在序列化、反序列化JSON数据中的应用
- .NET中JSON数据进行序列化和反序列化
- fastjson生成和解析json数据,序列化和反序列化数据
- ASP.NET MVC WebApi 返回数据类型序列化控制(json,xml) 用javascript在客户端删除某一个cookie键值对 input点击链接另一个页面,各种操作。 C# 往线程里传参数的方法总结 TCP/IP 协议 用C#+Selenium+ChromeDriver 生成我的咕咚跑步路线地图 (转)值得学习百度开源70+项目
- 实现客户端与服务端之间传输json数据
- java分享第十三天(fastjson生成和解析json数据,序列化和反序列化数据)