110,566
社区成员
发帖
与我相关
我的任务
分享
Persions p = new Persions();
p.Add(new Persion { Name = "Changkun", Age = 15, Address = "Beijing" });
p.Add(new Persion { Name = "zhangkun", Age = 25, Address = "Beijing" });
string json = p.ConvertJsonString();
return json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
/// <summary>
///Persion 的摘要说明
/// </summary>
public class Persion
{
public Persion()
{
//
//TODO: 在此处添加构造函数逻辑
//
}
string name;
public string Name
{
get { return name; }
set { name = value; }
}
int age;
public int Age
{
get { return age; }
set { age = value; }
}
string address;
public string Address
{
get { return address; }
set { address = value; }
}
}
/// <summary>
/// PersionsView
/// </summary>
public class Persions //: System.Collections.IList
{
System.Collections.Generic.List<Persion> items = new List<Persion>();
public void Add(Persion p)
{
this.items.Add(p);
}
public string ConvertJsonString()
{
System.Web.Script.Serialization.JavaScriptSerializer js = new System.Web.Script.Serialization.JavaScriptSerializer();
string json = js.Serialize(this.items);
return json;
}
public Persion ConvertJsonDeserialize(string jsonstring)
{
System.Web.Script.Serialization.JavaScriptSerializer js = new System.Web.Script.Serialization.JavaScriptSerializer();
return js.Deserialize<Persion>(jsonstring);
}
}
调用:
List<xxxxxx> list = Models.CommonTools.JsonDeserialize<List<xxxxxx>>(CarCookie.Value);//反序列化
string JsonString = Models.CommonTools.JsonSerializer<List<xxx>>(J_car_List);//序列化
/// <summary>
/// JSON序列化
/// </summary>
public static string JsonSerializer<T>(T t)
{
DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T));
MemoryStream ms = new MemoryStream();
ser.WriteObject(ms, t);
string jsonString = Encoding.UTF8.GetString(ms.ToArray());
ms.Close();
//替换Json的Date字符串
string p = @"\\/Date\((\d+)\+\d+\)\\/";
MatchEvaluator matchEvaluator = new MatchEvaluator(ConvertJsonDateToDateString);
Regex reg = new Regex(p);
jsonString = reg.Replace(jsonString, matchEvaluator);
return jsonString;
}
/// <summary>
/// JSON反序列化
/// </summary>
public static T JsonDeserialize<T>(string jsonString)
{
//将"yyyy-MM-dd HH:mm:ss"格式的字符串转为"\/Date(1294499956278+0800)\/"格式
string p = @"\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2}";
MatchEvaluator matchEvaluator = new MatchEvaluator(ConvertDateStringToJsonDate);
Regex reg = new Regex(p);
jsonString = reg.Replace(jsonString, matchEvaluator);
DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T));
using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonString)))
{
T obj = (T)ser.ReadObject(ms);
return obj;
}
}
var orders = db.Orders.Where(o => o.OrderID <= 10250);//这是取得一系列对象
JsonSerializerSettings settings = new JsonSerializerSettings();
settings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
string result = JsonConvert.SerializeObject(new { Orders = orders }, Formatting.Indented, settings);//需要注意的是,如果返回的是一个集合,那么还要在它的上面再封装一个类。否则客户端收到会出错的。
context.Response.Write(result);