using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.IO;
using System.Text;
namespace HStation.RevitDev.RevitRelationMap.Utils
{
public static class JsonHelper
{
///
/// 使用Newtonsoft.Json.JsonConvert把对象转为json字符串
///
///
///
///
public static string ToJson(T obj)
{
Newtonsoft.Json.Converters.IsoDateTimeConverter dtConverter = new Newtonsoft.Json.Converters.IsoDateTimeConverter { DateTimeFormat = "yyyy-MM-dd HH:mm:ss" };
return JsonConvert.SerializeObject(obj, Formatting.Indented, dtConverter);
}
///
/// 使用Newtonsoft.Json.JsonConvert把对象转为json字符串
///
///
///
///
public static string ToJson(T obj, Formatting format)
{
Newtonsoft.Json.Converters.IsoDateTimeConverter dtConverter = new Newtonsoft.Json.Converters.IsoDateTimeConverter { DateTimeFormat = "yyyy-MM-dd HH:mm:ss" };
return JsonConvert.SerializeObject(obj, format, dtConverter);
}
///
/// 使用Newtonsoft.Json.JsonConvert把json字符串转为对象
///
///
///
///
public static T ToObject(string content)
{
return JsonConvert.DeserializeObject(content);
}
///
/// 使用Newtonsoft.Json.JsonConvert把json字符串转为dynamic对象
///
///
///
public static dynamic ToDynamic(string content)
{
return JsonConvert.DeserializeObject(content);
}
///
/// 使用Newtonsoft.Json.Linq把json字符串转为JObject对象
///
///
///
public static JObject ToJObject(string content)
{
return JObject.Parse(content);
}
///
/// 读取json文件
///
///
///
public static string ReadJson(string path)
{
if (!System.IO.File.Exists(path)) { return string.Empty; }
string jsonText = string.Empty;
using (StreamReader sr = new StreamReader(path, Encoding.UTF8))
{
string line;
while ((line = sr.ReadLine()) != null)
{
jsonText = jsonText + line.ToString();
}
}
return jsonText;
}
public static string ReadJsonFile(string path)
{
if (!System.IO.File.Exists(path)) { return string.Empty; }
string jsonText = string.Empty;
using (StreamReader sr = new StreamReader(path, Encoding.UTF8))
{
jsonText = sr.ReadToEnd();
}
return jsonText;
}
///
/// 写json文件
///
///
///
public static void WriteJson(string path, string content)
{
System.IO.File.WriteAllText(path, content);
}
}
}