欢迎您访问我爱IT技术网,今天小编为你分享的编程技术是:【在.NET使用JSON作为数据交换格式实例演示】,下面是详细的讲解!
在.NET使用JSON作为数据交换格式实例演示
using System;
using SystemCollectionsGeneric;
using SystemLinq;
using SystemText;
using SystemWebScriptSerialization;
using SystemRuntimeSerializationJson;
using SystemIO;
using SystemRuntimeSerialization;
using NewtonsoftJson;
using NewtonsoftJsonLinq;
using NewtonsoftJsonConverters;
namespace JSONDemo
{
class Program
{
staticvoid Main(string[] args)
{
JavaScriptSerializerDemo();
DataContractJsonSerializerDemo();
JsonConvertDemo();
JsonConvertLinqDemo();
ConsoleReadLine();
}
publicstaticvoid JavaScriptSerializerDemo()
{
User user=new User { UserId=1, UserName="李刚", CreateDate=DateTimeNowAddYears(-30),Birthday=DateTimeNowAddYears(-50), Priority=PriorityHighest, Salary=500000 };
//JavaScriptSerializer类在SystemWebExtensionsdll中,注意添加这个引用
JavaScriptSerializer serializer=new JavaScriptSerializer();
//JSON序列化
string result=serializerSerialize(user);
ConsoleWriteLine("使用JavaScriptSerializer序列化后的结果:{0},长度:{1}", result, resultLength);
//JSON反序列化
user=serializerDeserialize<User>(result);
ConsoleWriteLine("使用JavaScriptSerializer反序列化后的结果:UserId:{0},UserName:{1},CreateDate:{2},Priority:{3}", userUserId, userUserName, userCreateDate, userPriority);
}
publicstaticvoid DataContractJsonSerializerDemo()
{
User user=new User { UserId=1, UserName="李刚", CreateDate=DateTimeNowAddYears(-30), Birthday=DateTimeNowAddYears(-50), Priority=PriorityAboveNormal, Salary=50000 };
string result=stringEmpty;
//DataContractJsonSerializer类在SystemServiceModelWebdll中,注意添加这个引用
DataContractJsonSerializer serializer=new DataContractJsonSerializer(typeof(User));
using (MemoryStream stream=new MemoryStream())
{
//JSON序列化
serializerWriteObject(stream, user);
result=EncodingUTFGetString(streamToArray());
ConsoleWriteLine("使用DataContractJsonSerializer序列化后的结果:{0},长度:{1}", result, resultLength);
}
//JSON反序列化
byte[] buffer=EncodingUTFGetBytes(result);
using (MemoryStream stream=new MemoryStream(buffer))
{
user=serializerReadObject(stream) as User;
ConsoleWriteLine("使用DataContractJsonSerializer反序列化后的结果:UserId:{0},UserName:{1},CreateDate:{2},Priority:{3}", userUserId, userUserName, userCreateDate, userPriority);
}
}
publicstaticvoid JsonConvertDemo()
{
User user=new User { UserId=1, UserName="李刚", CreateDate=DateTimeNowAddYears(-30), Birthday=DateTimeNowAddYears(-50), Priority=PriorityBelowNormal, Salary=5000 };
//JsonConvert类在NewtonsoftJsonNetdll中,注意到http://wwwcodeplexcom/json/下载这个dll并添加这个引用
//JSON序列化
string result=JsonConvertSerializeObject(user);
ConsoleWriteLine("使用JsonConvert序列化后的结果:{0},长度:{1}", result, resultLength);
//JSON反序列化
user=JsonConvertDeserializeObject<User>(result);
ConsoleWriteLine("使用JsonConvert反序列化后的结果:UserId:{0},UserName:{1},CreateDate:{2},Priority:{3}", userUserId, userUserName, userCreateDate, userPriority);
}
publicstaticvoid JsonConvertLinqDemo()
{
User user=new User { UserId=1, UserName="周公", CreateDate=DateTimeNowAddYears(-8), Birthday=DateTimeNowAddYears(-32), Priority=PriorityLowest, Salary=500, Urls=new List<string> { "http://zhoufoxcnblog51ctocom", "http://www.jb51.net" } };
//JsonConvert类在NewtonsoftJsonNetdll中,注意到http://wwwcodeplexcom/json/下载这个dll并添加这个引用
//JSON序列化
string result=JsonConvertSerializeObject(user);
ConsoleWriteLine("使用JsonConvert序列化后的结果:{0},长度:{1}", result, resultLength);
//使用Linq to JSON
JObject jobject=JObjectParse(result);
JToken token=jobject["Urls"];
List<string> urlList=new List<string>();
foreach (JToken t in token)
{
urlListAdd(tToString());
}
ConsoleWrite("使用Linq to JSON反序列化后的结果:[");
for (int i=0; i < urlListCount -1;i++ )
{
ConsoleWrite(urlList[i] +",");
}
ConsoleWriteLine(urlList[urlListCount -1] +"]");
}
}
[DataContract]
publicclass User
{
///<summary>
/// 编号
///</summary>
[DataMember]
publicint UserId { get; set; }
///<summary>
/// 用户名
///</summary>
[DataMember]
publicstring UserName { get; set; }
///<summary>
/// 创建时间
///</summary>
[DataMember]
[JsonConverter(typeof(IsoDateTimeConverter))]
public DateTime CreateDate { get; set; }
///<summary>
/// 生日
///</summary>
[DataMember]
[JsonConverter(typeof(JavaScriptDateTimeConverter))]
public DateTime Birthday { get; set; }
///<summary>
/// 相关URL
///</summary>
[DataMember]
public List<string> Urls { get; set; }
///<summary>
/// 薪水
///</summary>
[ScriptIgnore]//使用JavaScriptSerializer序列化时不序列化此字段
[IgnoreDataMember]//使用DataContractJsonSerializer序列化时不序列化此字段
[JsonIgnore]//使用JsonConvert序列化时不序列化此字段
publicint Salary { get; set; }
///<summary>
/// 权利级别
///</summary>
[DataMember]
public Priority Priority { get; set; }
public User()
{
Urls=new List<string>();
}
}
///<summary>
/// 权利级别
///</summary>
publicenum Priority:byte
{
Lowest=0x1,
BelowNormal=0x2,
Normal=0x4,
AboveNormal=0x8,
Highest=0x16
}
}
关于在.NET使用JSON作为数据交换格式实例演示的用户互动如下:
相关问题:用asp.net为后台,做搜索操作,得到的数据传出来转...
答:这个你参考一下API中的例子 , 很容易就看明白了 grid..需要有store , columns... store 负责 获取 , 解析 , 存储数据 columns 是表头 >>详细
相关问题:C#怎么取带嵌套的格式一致的JSON?
答:Web Service接口方法 [WebMethod] public string Project(string paramaters) { return paramaters; } 实现代码 public string Post(string methodName, string jsonParas) { string strURL = Url + "/" + methodName; //创建一个HTTP请求 HttpW... >>详细
相关问题:使用json-rpc规范交换数据,server用jsonRPCServer...
答:/** * Copyright (c) linkwise 2007-2009 corporation. * All rights reserved */ package com.linghui.common.util; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.Iterator; import java.u... >>详细
- 【asp】asp.net url重写浅谈-net-url重写
- 【DataSet】DataSet、DataTable、DataRow区别详解
- 【asp】asp.net 动态添加多个用户控件-net-动态添
- 【ASP】ASP.NET中内嵌页面代码的一个问题-NET-内
- 【As】Asp.net中的页面乱码的问题-sp--pn-ne-et
- 【增加记录】asp.net中获取新增加记录的ID Access
- 【创建】ASP.NET Web API教程 创建域模型的方法详
- 【Asp】Asp.net 页面调用javascript变量的值-net-
- 【ASP】ASP.NET 5升级后如何删除旧版本的DNX-NET5
- 【404页面】ASP.NET设置404页面返回302HTTP状态码
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
