工具類
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("數據傳輸錯誤!");
}
}