JSON 使用 List<string> 序列化和反序列化无效
JSON Serialize and Deserialize with List<string> not working
我在开发中遇到了以下问题:
我想在我的 iPhone 上序列化并保存一个字符串列表 (System.List)。该列表包含 运行 应用程序出现的错误消息。
然后我想加载它并反序列化它以将列表保存在我的应用程序中。以下代码会发生这种情况(代码缩短,不必要的部分被截断):
List<string> MyList = {"Message One", "Message two"};
//Serialize
string Temp = Newtonsoft.Json.Jsonconvert.SerializeObject(MyList);
//Save Data
using (Streamwriter sw = File.AppendText(Path))
{
sw.WriteLine(Temp);
}
//Load Data
MyList = Newtonsoft.Json.Jsonconvert.Deserialize<List<string>>(File.ReadAllText(Path));
然后我得到了异常
"Error converting value "one" to type 'System.Collections.Generic.List`1[System.String]'."
iOS 系统的输出在 .txt 文件中:
["One","Two"]
有什么问题?
出现问题:File.AppendText("C:\temp\t.txt")
它将在每个 运行 上附加新行。在 1 运行 之后。您无法转换所有文件内容。
List<string> MyList = new List<string>{ "One", "two" };
//Serialize
string Temp = JsonConvert.SerializeObject(MyList);
//Do this.
File.WriteAllText("C:\temp\t.txt",Temp);
//Comment this.
//using (StreamWriter sw = File.AppendText("C:\temp\t.txt"))
//{
// sw.WriteLine(Temp);
//}
//Load Data
MyList = JsonConvert.DeserializeObject<List<string>>(File.ReadAllText("C:\temp\t.txt"));
我在开发中遇到了以下问题:
我想在我的 iPhone 上序列化并保存一个字符串列表 (System.List)。该列表包含 运行 应用程序出现的错误消息。 然后我想加载它并反序列化它以将列表保存在我的应用程序中。以下代码会发生这种情况(代码缩短,不必要的部分被截断):
List<string> MyList = {"Message One", "Message two"};
//Serialize
string Temp = Newtonsoft.Json.Jsonconvert.SerializeObject(MyList);
//Save Data
using (Streamwriter sw = File.AppendText(Path))
{
sw.WriteLine(Temp);
}
//Load Data
MyList = Newtonsoft.Json.Jsonconvert.Deserialize<List<string>>(File.ReadAllText(Path));
然后我得到了异常
"Error converting value "one" to type 'System.Collections.Generic.List`1[System.String]'."
iOS 系统的输出在 .txt 文件中:
["One","Two"]
有什么问题?
出现问题:File.AppendText("C:\temp\t.txt")
它将在每个 运行 上附加新行。在 1 运行 之后。您无法转换所有文件内容。
List<string> MyList = new List<string>{ "One", "two" };
//Serialize
string Temp = JsonConvert.SerializeObject(MyList);
//Do this.
File.WriteAllText("C:\temp\t.txt",Temp);
//Comment this.
//using (StreamWriter sw = File.AppendText("C:\temp\t.txt"))
//{
// sw.WriteLine(Temp);
//}
//Load Data
MyList = JsonConvert.DeserializeObject<List<string>>(File.ReadAllText("C:\temp\t.txt"));