| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- using Newtonsoft.Json;
- using Newtonsoft.Json.Converters;
- using System;
- using System.IO;
- using System.Text;
- namespace DaJiaoYan.Utils
- {
- internal class Json
- {
- private static readonly JavaScriptDateTimeConverter JavaScriptDateTimeConverter = new JavaScriptDateTimeConverter();
- /// <summary>
- /// json格式解码
- /// </summary>
- /// <typeparam name="T"></typeparam>
- /// <param name="stream"></param>
- /// <returns></returns>
- public static T Decode<T>(Stream stream)
- {
- JsonSerializer serializer = new JsonSerializer();
- serializer.Converters.Add(JavaScriptDateTimeConverter);//指定转化日期的格式
- using (StreamReader sr = new StreamReader(stream, Encoding.UTF8))
- using (JsonReader reader = new JsonTextReader(sr))
- {
- return serializer.Deserialize<T>(reader);
- }
- }
- /// <summary>
- /// json格式解码
- /// </summary>
- /// <typeparam name="T"></typeparam>
- /// <param name="txt"></param>
- /// <returns></returns>
- public static T Decode<T>(string txt)
- {
- JsonSerializer serializer = new JsonSerializer();
- serializer.Converters.Add(JavaScriptDateTimeConverter);//指定转化日期的格式
- using (StringReader sr = new StringReader(txt))
- using (JsonReader reader = new JsonTextReader(sr))
- {
- T res = default;
- try
- {
- res = serializer.Deserialize<T>(reader);
- }
- catch (Exception ex)
- {
- Console.WriteLine(ex.Message);
- }
- return res;
- }
- }
- /// <summary>
- /// json格式编码
- /// </summary>
- /// <param name="obj"></param>
- /// <returns></returns>
- public static string Encode(object obj)
- {
- return JsonConvert.SerializeObject(obj, JavaScriptDateTimeConverter);
- }
- }
- }
|