//Serializer and deserializer. public void SaveData(bool isExport) { var JsonSettings = new JsonSerializerSettings { Formatting = Formatting.Indented, TypeNameHandling = TypeNameHandling.Auto, ReferenceLoopHandling = ReferenceLoopHandling.Serialize }; string savepath = ""; if (isExport) { savepath = ModPath + @"/Export/tags/"; } else { savepath = ModPath + @"/tags/"; } DefaultJsonSettings.Initialize(); try { if (!Directory.Exists(savepath)) { Directory.CreateDirectory(savepath); } JsonSerializer serializer = JsonSerializer.Create(JsonSettings); using (StreamWriter sw = new StreamWriter(savepath + $"{this.CustomId}.json")) using (JsonWriter writer = new JsonTextWriter(sw)) { serializer.Serialize(writer, this); } } catch (Exception e) { Main.Mod.Log($"Error processing {this.CustomId}"); #if (DEBUG) Main.Mod.Log(e.StackTrace); #endif throw e; } }
public void Serialize <T>(TextWriter writer, T obj) { DefaultJsonSettings.Initialize(); writer.Write(JsonConvert.SerializeObject(obj, Formatting.Indented)); }
public T Deserialize <T>(TextReader reader) { DefaultJsonSettings.Initialize(); return(JsonConvert.DeserializeObject <T>(reader.ReadToEnd())); }