json学习笔记(3)
{
DataContractJsonSerializer zer = new DataContractJsonSerializer(typeof(T));
MemoryStream ms = new MemoryStream();
zer.WriteObject(ms, t);
string jsonstring = Encoding.UTF8.GetString(ms.ToArray());
ms.Close();
return jsonstring;
}
/// <summary>
/// json反序列化
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="strjson"></param>
/// <returns></returns>
public static T JsonDeserializa<T>(string strjson)
{
DataContractJsonSerializer zer = new DataContractJsonSerializer(typeof(T));
MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(strjson));
T obj = (T)zer.ReadObject(ms);
return obj;
}
}
person类:
View Code
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
简单实现:
View Code
protected void Page_Load(object sender, EventArgs e)
{
Person p = new Person();
p.Name = "Ace";
p.Age = 22;
string json = JsonHelper.JsonSerializa<Person>(p);
Response.Write(json);
}
json序列化处理日期类型的处理
JSON格式不直接支持日期和时间。DateTime值值显示为“/Date(700000+0500)/”形式的JSON字符串,其中第一个数字(在提供的示例中为 700000)是 GMT 时区中自 1970 年 1 月 1 日午夜以来按正常时间(非夏令时)经过的毫秒数。该数字可以是负数,以表示之前的时间。示例中包括“+0500”的部分可选,它指示该时间属于Local类型,即它在反序列化时应转换为本地时区。如果没有该部分,则会将时间反序列化为Utc。
相关新闻>>
- 发表评论
-
- 最新评论 更多>>