using
System;
System.Collections.Generic;
System.Linq;
System.Text;
Newtonsoft.Json.Converters;
Newtonsoft.Json;
System.IO;
/// <summary>
///JsonUtility 的摘要说明
/// </summary>
Utility
{
/// <summary>
/// Json工具类
/// </summary>
static
JsonUtility
{
/// <summary>
/// 添加时间转换器
/// </summary>
/// <param name="serializer"></param>
private
void
AddIsoDateTimeConverter(JsonSerializer serializer)
{
IsoDateTimeConverter idtc =
new
IsoDateTimeConverter();
idtc.DateTimeFormat =
"yyyy-MM-dd HH:mm:ss"
;
//idtc.DateTimeFormat = "yyyy-MM-dd";
serializer.Converters.Add(idtc);
}
/// <summary>
/// Json转换配置
/// </summary>
/// <param name="serializer"></param>
SerializerSetting(JsonSerializer serializer)
{
serializer.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
//serializer.NullValueHandling = NullValueHandling.Ignore;
//serializer.MissingMemberHandling = MissingMemberHandling.Ignore;
//serializer.DefaultValueHandling = DefaultValueHandling.Ignore;
}
/// <summary>
/// 返回结果消息编码
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="sucess"></param>
/// <param name="message"></param>
/// <param name="exMessage"></param>
/// <param name="data"></param>
/// <returns></returns>
ReturnMessage(
bool
sucess,
int
total,monospace!important; min-height:inherit!important">message,monospace!important; min-height:inherit!important">exMessage,monospace!important; min-height:inherit!important">data)
{
message = message.Replace(
"'"
,
""
).Replace(
"""
"<"
">"
);
exMessage = exMessage.Replace(
);
return
.Format(
"{{success:{0},total:{1},data:{2},message:"{3}",exMessage:"{4}"}}"
sucess.ToString().ToLower(),total,data,message,exMessage);
}
/// <summary>
/// 返回失败信息
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="message"></param>
/// <param name="exMessage"></param>
/// <returns></returns>
ReturnFailureMessage(
exMessage)
{
return
false
"[]"
);
}
/// <summary>
/// 返回失败信息
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="message"></param>
/// <param name="exMessage"></param>
/// <returns></returns>
ReturnFailureMessageTouch(
exMessage)
{
return
"{"success":"false","msg":""
+ exMessage +
""}"
;
}
/// <summary>
/// 返回成功信息
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="total"></param>
/// <param name="message"></param>
/// <param name="exMessage"></param>
/// <param name="objList"></param>
/// <returns></returns>
ReturnSuccessMessage<T>(
{
data = ListToJson<T>(objList);
true
}
ReturnSuccessMessageTouch<T>(T obj)
{
data = ObjectToJson<T>(obj);
data;
}
/// <summary>
/// 返回成功信息
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="total"></param>
/// <param name="message"></param>
/// <param name="exMessage"></param>
/// <param name="objList"></param>
/// <returns></returns>
ReturnSuccessMessage(
exMessage)
{
);
}
/// <summary>
/// 返回成功信息
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="total"></param>
/// <param name="message"></param>
/// <param name="exMessage"></param>
/// <param name="objList"></param>
/// <returns></returns>
ReturnSuccessMessageTouch(
exMessage)
{
"{"success":"true",monospace!important; min-height:inherit!important">+ message +
;
}
/// <summary>
/// 返回成功信息
/// </summary>
/// <param name="message"></param>
/// <param name="exMessage"></param>
/// <param name="data">JSON 对象</param>
/// <returns></returns>
data)
{
"["
+ data +
"]"
);
}
/// <summary>
/// 返回成功消息
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="total"></param>
/// <param name="message"></param>
/// <param name="exMessage"></param>
/// <param name="obj"></param>
/// <returns></returns>
{
data = ObjectToJson<T>(obj);
}
/// <summary>
/// 把对象列表编码为Json数据
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="objList"></param>
/// <returns></returns>
ListToJson<T>(List<T> objList)
{
JsonSerializer serializer =
JsonSerializer();
SerializerSetting(serializer);
AddIsoDateTimeConverter(serializer);
(TextWriter sw =
StringWriter())
(JsonWriter writer =
JsonTextWriter(sw))
{
serializer.Serialize(writer,objList);
sw.ToString();
}
}
/// <summary>
/// 把一个对象编码为Json数据
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="obj"></param>
/// <returns></returns>
ObjectToJson<T>(T obj)
{
JsonSerializer();
SerializerSetting(serializer);
AddIsoDateTimeConverter(serializer);
StringWriter())
JsonTextWriter(sw))
{
sw.ToString();
}
}
/// <summary>
/// 根据传入的Json数据,解码为对象(一个)
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="data"></param>
/// <returns></returns>
static
T DecodeObject<T>(
data)
{
JsonSerializer();
serializer.MissingMemberHandling = MissingMemberHandling.Ignore;
AddIsoDateTimeConverter(serializer);
StringReader sr =
StringReader(data);
(T)serializer.Deserialize(sr,255)!important">typeof
(T));
}
/// <summary>
/// 功能同DecodeObject
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="data"></param>
/// <returns></returns>
List<T> DecodeObjectList<T>(
data)
{
JsonSerializer();
serializer.MissingMemberHandling = MissingMemberHandling.Ignore;
AddIsoDateTimeConverter(serializer);
StringReader(data);
(List<T>)serializer.Deserialize(sr,monospace!important; min-height:inherit!important">(List<T>));
}
EncodeAjaxResponseJson(
jsonString,monospace!important; min-height:inherit!important">callback)
{
String responseString =
;
//判断是否jsonp调用
if
(!String.IsNullOrEmpty(callback))
{
//jsonp调用,需要封装回调函数,并返回
responseString = callback +
"("
+ jsonString +
")"
;
}
else
{
//普通ajax调用,直接返回Json数据
responseString = jsonString;
}
responseString;
}
ExtGridSortInfo(
property,monospace!important; min-height:inherit!important">direction)
{
"[{{"property":"{0}","direction":"{1}"}}]"
}
}
}