您的位置:首页 > Web前端 > JavaScript

Json数据封装和解析

2012-09-13 15:36 295 查看
添加dll引用(右键项目--添加引用--.net--选择)

C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\v3.0\System.Runtime.Serialization.dll

C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\v3.5\System.ServiceModel.Web.dll

using System.IO;

using System.Text;

using System.Runtime.Serialization;

using System.Runtime.Serialization.Json;

#region json封装

[Serializable]

public class outerClass

{

public int Status;

public string Message;

//public int Status{get;set;}

//public string Message{get;set;}

//public outerClass(int _status,string _message)

//{

// Status=_status;

// Message = _message;

//}

}

//json序列化

public string ToJsJson(object item)

{

DataContractJsonSerializer serializer = new DataContractJsonSerializer(item.GetType());

using (MemoryStream ms = new MemoryStream())

{

serializer.WriteObject(ms, item);

StringBuilder sb = new StringBuilder();

sb.Append(Encoding.UTF8.GetString(ms.ToArray()));

return sb.ToString();

}

}

//使用

//List<outerClass> resultList = new List<outerClass>();

//resultList.Add(new outerClass(1, "可以登录飞行网"));

//result = ToJsJson(resultList);

outerClass ou = new outerClass();

ou.Status = 1;

ou.Message = "可以登录飞行网";

result = ToJsJson(ou);

#endregion

#region json解析

[Serializable]

public class outerClass

{

public int Status;

public string Message;

}

wsChangePwd.SetUserInfoService ws = new wsChangePwd.SetUserInfoService(); //webservice

string result=ws.ChangePassword(uid, pwdOld, pwdNew); //{"Status":-2,"Message":"原始用户名或密码错误!"}

DataContractJsonSerializer ser1=new DataContractJsonSerializer(typeof(outerClass));

outerClass message = new outerClass();

using (MemoryStream ms = new MemoryStream(Encoding.Unicode.GetBytes(result)))

{

message = ser1.ReadObject(ms) as outerClass;

}

int Status = message.Status;

if (Status > 0)

{

Page.ClientScript.RegisterStartupScript(GetType(), "消息提示", "<script>alert('" + message.Message + "')</script>");

}

#endregion
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: