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

//引用System.ServiceModel.Web和System.Runtime.Serialization
using System;
using System.IO;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Json;
using System.Text;
namespace ConsoleApplication1
{
[DataContract]
class User
{
[DataMember]
public int Id { get; set; }
[DataMember]
public string Name { get; set; }
[DataMember]
public DateTime Created { get; set; }
}
class Program
{
static void Main(string[] args)
{
DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(User));
User user = new User();
user.Id = 1;
user.Name = "dnawo";
user.Created = DateTime.Now;
//序列化
Console.WriteLine("序列化:");
string json = string.Empty;
using (MemoryStream stream = new MemoryStream())
{
serializer.WriteObject(stream, user);
json = Encoding.UTF8.GetString(stream.ToArray());
}
Console.WriteLine(json);
//反序列化
Console.WriteLine("反序列化:");
User user1;
using (MemoryStream stream = new MemoryStream(Encoding.UTF8.GetBytes(json)))
{
user1 = (User)serializer.ReadObject(stream);
}
Console.WriteLine(user1.Name);
Console.ReadKey();
}
}
}
using System;
using System.IO;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Json;
using System.Text;
namespace ConsoleApplication1
{
[DataContract]
class User
{
[DataMember]
public int Id { get; set; }
[DataMember]
public string Name { get; set; }
[DataMember]
public DateTime Created { get; set; }
}
class Program
{
static void Main(string[] args)
{
DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(User));
User user = new User();
user.Id = 1;
user.Name = "dnawo";
user.Created = DateTime.Now;
//序列化
Console.WriteLine("序列化:");
string json = string.Empty;
using (MemoryStream stream = new MemoryStream())
{
serializer.WriteObject(stream, user);
json = Encoding.UTF8.GetString(stream.ToArray());
}
Console.WriteLine(json);
//反序列化
Console.WriteLine("反序列化:");
User user1;
using (MemoryStream stream = new MemoryStream(Encoding.UTF8.GetBytes(json)))
{
user1 = (User)serializer.ReadObject(stream);
}
Console.WriteLine(user1.Name);
Console.ReadKey();
}
}
}
说明:实体类必须标以DataContractAttribute特性,其所有要序列化的成员标以 DataMemberAttribute 特性,否则无法正常序列化。
运行结果:

序列化:
{"Created":"\/Date(1346123311125+0800)\/","Id":1,"Name":"dnawo"}
反序列化:
dnawo
{"Created":"\/Date(1346123311125+0800)\/","Id":1,"Name":"dnawo"}
反序列化:
dnawo
使用DataMember缩写类成员名称
复制内容到剪贴板
程序代码

[DataContract]
class User
{
[DataMember(Name = "id")]
public int Id { get; set; }
[DataMember(Name = "na")]
public string Name { get; set; }
[IgnoreDataMember]
public DateTime Created { get; set; }
}
class User
{
[DataMember(Name = "id")]
public int Id { get; set; }
[DataMember(Name = "na")]
public string Name { get; set; }
[IgnoreDataMember]
public DateTime Created { get; set; }
}
运行结果:

{"id":1,"na":"dnawo"}






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