I am having an error at the line "obj.flag" saying my object is null, also I don't try to read an empty file I handled it with if-else. I see no problem with my (de)serialization neither. I tried ignoring null's like;
MissingMemberHandling = MissingMemberHandling.Ignore, NullValueHandling = NullValueHandling.Ignore
Those kind of codes didn't work too. I am stuck, can someone please help me
bool portStateIsWritten;
//bool var = Class1.flag;
//FILENAME
string input = Interaction.InputBox("Enter a serial number", "TEST", "Default", -1, -1);
//DEFAULT PATH ROOT
String root = @".\\";
string path_combined;
FlagClass obj = new FlagClass();
public UI()
{
InitializeComponent();
foreach (string s in SerialPort.GetPortNames())
{
cbxPort.Items.Add(s);
cbxPort.SelectedIndex = 0;
}
input += ".txt";
//default path + new filename
path_combined = Path.Combine(root, input);
var settings = new JsonSerializerSettings
{
MissingMemberHandling = MissingMemberHandling.Ignore,
NullValueHandling = NullValueHandling.Ignore
};
if (!File.Exists(path_combined))
{
using (var stream = File.Create(path_combined))
{
if (new FileInfo(path_combined).Length > 0)
{
//flag situation
string json2 = File.ReadAllText(path_combined);
FormatJson(json2);
obj = JsonConvert.DeserializeObject<FlagClass>(json2, settings);
}
}
}
else
{
//flag situation
string json2 = File.ReadAllText(path_combined);
FormatJson(json2);
obj = JsonConvert.DeserializeObject<FlagClass>(json2, settings);
}
}
private static string FormatJson(string json)
{
dynamic parsedJson = JsonConvert.DeserializeObject(json);
return JsonConvert.SerializeObject(parsedJson, Formatting.Indented);
}
void Serialize()
{
string json = JsonConvert.SerializeObject(obj, Formatting.Indented, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore });
File.WriteAllText(path_combined, json);
}
private void btn_test1_Click(object sender, EventArgs e)
{ obj.flag = true;
//serialize
Serialize();
}