【发布时间】:2020-03-10 12:12:09
【问题描述】:
我的开发遇到以下问题:
我想在我的 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几乎肯定会导致问题。您不能将一个 JSON 文档(或类似文档)附加到另一个文档。我怀疑问题在于您的文件以"one"开头,而这不是列表的开头。 -
检查
File.ReadAllText(Path)是否获取到您发送的数据。 -
如果你能展示可编译的代码就好了,而不是像上面这样的缩短代码。
-
It's working ... 因为其他人写了你的文件not contains valid JSON
标签: c# ios xamarin xamarin.ios jsonconvert