143 lines
3.3 KiB
C#
143 lines
3.3 KiB
C#
![]() |
using Newtonsoft.Json;
|
|||
|
using Newtonsoft.Json.Converters;
|
|||
|
using Newtonsoft.Json.Linq;
|
|||
|
using System;
|
|||
|
using System.Collections.Generic;
|
|||
|
|
|||
|
namespace HT.Cloud.Code
|
|||
|
{
|
|||
|
#region JsonHelper
|
|||
|
|
|||
|
public static class JsonHelper
|
|||
|
{
|
|||
|
/// <summary>
|
|||
|
/// 把数组转为逗号连接的字符串
|
|||
|
/// </summary>
|
|||
|
/// <param name="data"></param>
|
|||
|
/// <param name="Str"></param>
|
|||
|
/// <returns></returns>
|
|||
|
public static string ArrayToString(dynamic data, string Str)
|
|||
|
{
|
|||
|
string resStr = Str;
|
|||
|
foreach (var item in data)
|
|||
|
{
|
|||
|
if (resStr != "")
|
|||
|
{
|
|||
|
resStr += ",";
|
|||
|
}
|
|||
|
|
|||
|
if (item is string)
|
|||
|
{
|
|||
|
resStr += item;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
resStr += item.Value;
|
|||
|
}
|
|||
|
}
|
|||
|
return resStr;
|
|||
|
}
|
|||
|
|
|||
|
public static object ToObject(this string Json)
|
|||
|
{
|
|||
|
return string.IsNullOrEmpty(Json) ? null : JsonConvert.DeserializeObject(Json);
|
|||
|
}
|
|||
|
|
|||
|
public static T ToObject<T>(this string Json)
|
|||
|
{
|
|||
|
Json = Json.Replace(" ", "");
|
|||
|
return Json == null ? default(T) : JsonConvert.DeserializeObject<T>(Json);
|
|||
|
}
|
|||
|
|
|||
|
public static JObject ToJObject(this string Json)
|
|||
|
{
|
|||
|
return Json == null ? JObject.Parse("{}") : JObject.Parse(Json.Replace(" ", ""));
|
|||
|
}
|
|||
|
|
|||
|
public static List<T> ToList<T>(this string Json)
|
|||
|
{
|
|||
|
return Json == null ? null : JsonConvert.DeserializeObject<List<T>>(Json);
|
|||
|
}
|
|||
|
|
|||
|
public static string ToJson(this object obj, string dateFormat = "yyyy/MM/dd HH:mm:ss")
|
|||
|
{
|
|||
|
return obj == null ? string.Empty : JsonConvert.SerializeObject(obj, new IsoDateTimeConverter { DateTimeFormat = dateFormat });
|
|||
|
}
|
|||
|
|
|||
|
public static string ToJsonNullValueHandling(this object obj, string dateFormat = "yyyy/MM/dd HH:mm:ss")
|
|||
|
{
|
|||
|
return obj == null ? string.Empty : JsonConvert.SerializeObject(obj, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore });
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
#endregion JsonHelper
|
|||
|
|
|||
|
#region JsonConverter
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// Json数据返回到前端js的时候,把数值很大的long类型转成字符串
|
|||
|
/// </summary>
|
|||
|
public class StringJsonConverter : JsonConverter
|
|||
|
{
|
|||
|
public StringJsonConverter()
|
|||
|
{ }
|
|||
|
|
|||
|
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
|
|||
|
{
|
|||
|
return reader.Value.ToLong();
|
|||
|
}
|
|||
|
|
|||
|
public override bool CanConvert(Type objectType)
|
|||
|
{
|
|||
|
return true;
|
|||
|
}
|
|||
|
|
|||
|
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
|
|||
|
{
|
|||
|
if (value == null)
|
|||
|
{
|
|||
|
writer.WriteNull();
|
|||
|
return;
|
|||
|
}
|
|||
|
string sValue = value.ToString();
|
|||
|
writer.WriteValue(sValue);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// DateTime类型序列化的时候,转成指定的格式
|
|||
|
/// </summary>
|
|||
|
public class DateTimeJsonConverter : JsonConverter
|
|||
|
{
|
|||
|
public DateTimeJsonConverter()
|
|||
|
{ }
|
|||
|
|
|||
|
public override bool CanConvert(Type objectType)
|
|||
|
{
|
|||
|
return true;
|
|||
|
}
|
|||
|
|
|||
|
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
|
|||
|
{
|
|||
|
return reader.Value.ParseToString().ToDate();
|
|||
|
}
|
|||
|
|
|||
|
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
|
|||
|
{
|
|||
|
if (value == null)
|
|||
|
{
|
|||
|
writer.WriteNull();
|
|||
|
return;
|
|||
|
}
|
|||
|
DateTime? dt = value as DateTime?;
|
|||
|
if (dt == null)
|
|||
|
{
|
|||
|
writer.WriteNull();
|
|||
|
return;
|
|||
|
}
|
|||
|
writer.WriteValue(dt.Value.ToString("yyyy/MM/dd HH:mm:ss"));
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
#endregion JsonConverter
|
|||
|
}
|