工具类
using System;
using System.Collections.Generic; using System.Linq; using System.Web; using System.Runtime.Serialization.Json; using System.Text; using System.IO; using System.Web.Security; using System.Runtime.Serialization.Json; /// <summary> /// 解析JSON,仿Javascript风格 /// </summary> public static class JSON { public static T parse<T>(string jsonString) { using (var ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonString))) { return (T)new DataContractJsonSerializer(typeof(T)).ReadObject(ms); } } public static string stringify(object jsonObject) { string str = ""; using (var ms = new MemoryStream()) { new DataContractJsonSerializer(jsonObject.GetType()).WriteObject(ms, jsonObject); str = Encoding.UTF8.GetString(ms.ToArray()); } return str; }}
调用webservice为例 ,param 封装 user pass 、HandleStocker 封装想拿出的数据、wsResult 为自行定义的 结果对象
protected void Button1_Click(object sender, EventArgs e) { param param = new param(); param.user = user.Text.Trim(); param.pass = pass.Text.Trim(); login.login(); String stringParam = ContractJson.trans(JSON.stringify(param)); String result = ""; try { result = manufactureRecBillWEBSrv.getStockerInfo(stringParam); } catch { MsgUtil.MsgUtil.ShowMessage("数据传输错误!"); } if (JSON.checkValue(result)) { WsResultStocker<List<HandleStocker>> wsResult = JSON.parse<WsResultStocker<List<HandleStocker>>>(result); if (wsResult.success) { Session.Contents.Clear(); List<HandleStocker> stockerArray = wsResult.data;
//接具体操作 } else { MsgUtil.MsgUtil.ShowMessage("账号或密码错误:" + wsResult.message); } } else { MsgUtil.MsgUtil.ShowMessage("数据传输错误!"); } }