不错呦!smile@林凯西,确保“准备文件”中的几个文件都有安装,S...您好,看了您这篇帖子觉得很有帮助。但是有个问题想请...我的修改过了怎么还被恶意注册呢 @jjjjiiii 用PJ快9年了,主要是A...PJ3啊,貌似很少有人用PJ了,现在不是WP就是z...@332347365,我当时接入时错误码没有-10...楼主,ChkValue值应为-103是什么意思呢?...大哥 你最近能看到我发的信息,请跟我联系,我有个制...
.NET 3.5 JSON序列化/反序列化类JavascriptSerializer简单示例
编辑:dnawo 日期:2012-08-28
复制内容到剪贴板
程序代码

//引用System.Web.Extensions
using System;
using System.Web.Script.Serialization;
namespace ConsoleApplication1
{
class User
{
public int Id { get; set; }
public string Name { get; set; }
public DateTime Created { get; set; }
}
class Program
{
static void Main(string[] args)
{
JavascriptSerializer serializer = new JavascriptSerializer();
User user = new User();
user.Id = 1;
user.Name = "dnawo";
user.Created = DateTime.Now;
//序列化
Console.WriteLine("序列化:");
string json = serializer.Serialize(user);
Console.WriteLine(json);
//反序列化
Console.WriteLine("反序列化:");
User user1 = serializer.Deserialize<User>(json);
Console.WriteLine(user1.Name);
Console.ReadKey();
}
}
}
using System;
using System.Web.Script.Serialization;
namespace ConsoleApplication1
{
class User
{
public int Id { get; set; }
public string Name { get; set; }
public DateTime Created { get; set; }
}
class Program
{
static void Main(string[] args)
{
JavascriptSerializer serializer = new JavascriptSerializer();
User user = new User();
user.Id = 1;
user.Name = "dnawo";
user.Created = DateTime.Now;
//序列化
Console.WriteLine("序列化:");
string json = serializer.Serialize(user);
Console.WriteLine(json);
//反序列化
Console.WriteLine("反序列化:");
User user1 = serializer.Deserialize<User>(json);
Console.WriteLine(user1.Name);
Console.ReadKey();
}
}
}
运行结果:

序列化:
{"Id":1,"Name":"dnawo","Created":"\/Date(1346119447875)\/"}
反序列化:
dnawo
{"Id":1,"Name":"dnawo","Created":"\/Date(1346119447875)\/"}
反序列化:
dnawo
使用ScriptIgnore指定某些类成员不序列化
复制内容到剪贴板
程序代码

class User
{
public int Id { get; set; }
public string Name { get; set; }
[ScriptIgnore]
public DateTime Created { get; set; }
}
{
public int Id { get; set; }
public string Name { get; set; }
[ScriptIgnore]
public DateTime Created { get; set; }
}
运行结果:

{"Id":1,"Name":"dnawo"}
常见问题
问:为什么DateTime类型序列化的结果为"\/Date(1346119447875)\/"?
答:使用Reflector跟踪JavascriptSerializer.Serialize方法,DateTime类型序列化代码如下:
复制内容到剪贴板
程序代码

private static void SerializeDateTime(DateTime datetime, StringBuilder sb, SerializationFormat serializationFormat)
{
if (serializationFormat == SerializationFormat.JSON)
{
sb.Append("\"\\/Date(");
sb.Append((long) ((datetime.ToUniversalTime().Ticks - DatetimeMinTimeTicks) / 0x2710L));
sb.Append(")\\/\"");
}
else
{
sb.Append("new Date(");
sb.Append((long) ((datetime.ToUniversalTime().Ticks - DatetimeMinTimeTicks) / 0x2710L));
sb.Append(")");
}
}
{
if (serializationFormat == SerializationFormat.JSON)
{
sb.Append("\"\\/Date(");
sb.Append((long) ((datetime.ToUniversalTime().Ticks - DatetimeMinTimeTicks) / 0x2710L));
sb.Append(")\\/\"");
}
else
{
sb.Append("new Date(");
sb.Append((long) ((datetime.ToUniversalTime().Ticks - DatetimeMinTimeTicks) / 0x2710L));
sb.Append(")");
}
}






评论: 0 | 引用: 0 | 查看次数: 5318
发表评论
请登录后再发表评论!