是否可以将数组中的对象保存/存储在文件中



所以我有一个学校任务,我可以写一个控制台代码,在其中我可以创建各种产品,只需输入即可。

我已经设法使用了一个对象数组,使其更容易处理产品的创建、编辑和删除。

我想知道是否有可能以任何形式存储这个对象数组。当它们是一种很好的方法时,你能向我解释一下吗?

所以,在一些帮助下,我现在想好了如何存储它:D。非常感谢!但现在我的问题是:除了属性";私人双人门;没有商店。

我的班级:

[Serializable]
class Artikel
{
public string artikelnummer;
public string artikelbezeichnung;
private double Menge;
public string Mengeneinheit;
public double Preis;
public void MengeAktualisieren(double abZuBuchung)
{
if (abZuBuchung < -1000 || abZuBuchung > 1000)
{
Console.WriteLine("Eingabe darf den Wert 1000 nicht ueberschreiten und den Wert -1000 nicht unterschreiten!n");
}
else
{
Menge += abZuBuchung;
Console.WriteLine("nnMenge wurde zu: " + MengeAnzeigen() + " geändert!n");
}
}
public string MengeAnzeigen()
{
return (Menge.ToString());
}

[JsonConstructor]
public Artikel(string anlegen_artikelnummer, string anlegen_artikelbezeichnung, double anlegen_Menge, string anlegen_Mengeneinheit, double anlegen_Preis)
{
artikelnummer = anlegen_artikelnummer;
artikelbezeichnung = anlegen_artikelbezeichnung;
Menge = anlegen_Menge;
Mengeneinheit = anlegen_Mengeneinheit;
Preis = anlegen_Preis;
}
}

是。您可以通过多种方式做到这一点,但最流行的方式是序列化该数组并将其写入文件,当您需要从文件中检索该数组时,读取该特定文件并对文件内容进行DE序列化,然后将该内容转换为数组。最流行的方式之一是使用";Newtonsoft.Json";图书馆下面是我的代码。请尝试一下,让我知道它是否有效。

private void ArrayToJSONString(MyClass[] items,string outpath)
{  
string jsonData = JsonConvert.SerializeObject(items);
var myFile = File.Create(outpath);
myFile.Close();
File.WriteAllText(@"" + outpath, jsonData);           
}
private void JSONStringToArray(string filepath)
{
string jsonData = File.ReadAllText(filepath);             
MyClass[] items = JsonConvert.DeserializeObject<MyClass[]>(jsondata);           
}

注:JsonConvert类在Newtonsoft.Json库中。它是免费的,可用于.NET和.NET Core。

在@Linker SJNF的帮助下,我学会了如何序列化和反序列化我的对象数组。他们就是这个小问题,我的属性是:private double menge不会序列化。。。

答案是将[JsonProperty]放在该属性的声明之上。现在一切都很好!

非常感谢@Linker SJNF和@dr.null的帮助!祝你好运!

最新更新