/// <summary> /// 將物件序列化為 JSON 字串。 /// </summary> /// <param name="value">物件。</param> /// <param name="options">Json序列化選項。</param> public static string ObjectToJson(object value, JsonOptions options = null) { // 序列化為 JSON 字串 var oSettings = GetJsonSerializerSettings(options); var sJson = JsonConvert.SerializeObject(value, oSettings); return(sJson); }
/// <summary> /// 將 Json 字串反序列化為物件。 /// </summary> /// <param name="json">JSON 字串。</param> /// <param name="type">型別。</param> /// <param name="options">Json序列化選項。</param> public static object JsonToObject(string json, Type type, JsonOptions options = null) { // 反序列化 JSON 字串 var oSettings = GetJsonSerializerSettings(options); var oValue = JsonConvert.DeserializeObject(json, type, oSettings); return(oValue); }
/// <summary> /// 取得 JSON 序列化設定。 /// </summary> /// <param name="options">Json序列化選項。</param> private static JsonSerializerSettings GetJsonSerializerSettings(JsonOptions options) { if (options == null) { options = new JsonOptions(); } return(GetJsonSerializerSettings(options.IgnoreDefaultValue, options.IgnoreNullValue, options.IncludeTypeName)); }
/// <summary> /// 將 Json 字串反序列化為物件。 /// </summary> /// <typeparam name="T">泛型型別。</typeparam> /// <param name="json">JSON 字串。</param> /// <param name="options">Json序列化選項。</param> public static T JsonToObject <T>(string json, JsonOptions options = null) { return((T)JsonToObject(json, typeof(T), options)); }