Json 在.net标准应用程序上本地保存数据

Json 在.net标准应用程序上本地保存数据,json,xamarin,xml-serialization,portable-class-library,.net-standard,Json,Xamarin,Xml Serialization,Portable Class Library,.net Standard,我想将.net标准应用程序上的数据序列化到本地文件中,如果可能的话,我希望避免使用sqlite 跨平台应用程序的标准建议似乎是PCL存储,但根据这一点,PCL存储不再维护,不提供.net标准支持,替代PCLExt还不成熟 您能否告诉我是否可以简单地序列化我的数据,例如使用json 非常感谢你 您不能完全访问操作系统的文件系统和特定于平台的功能,如Android的ContentResolver,但可以在应用程序的沙箱(或外部文件系统,如果应用程序可以访问)中读/写基本文件。NetStandard

我想将.net标准应用程序上的数据序列化到本地文件中,如果可能的话,我希望避免使用sqlite

跨平台应用程序的标准建议似乎是PCL存储,但根据这一点,PCL存储不再维护,不提供.net标准支持,替代PCLExt还不成熟

您能否告诉我是否可以简单地序列化我的数据,例如使用json


非常感谢你

您不能完全访问操作系统的文件系统和特定于平台的功能,如Android的
ContentResolver
,但可以在应用程序的沙箱(或外部文件系统,如果应用程序可以访问)中读/写基本文件。NetStandard 2.0运行良好,因此,它用于存储和检索基于文本的文件,以便序列化/反序列化Json

例如,如果您有一个基于
Xamarin.Forms
的解决方案,并将.NetStandard 2.0库项目添加到该解决方案中,还将
Newtonsoft.Json
添加到该解决方案中。您可以在其中创建以下函数:

.NetStandard库函数:
非常感谢,这看起来很有希望:)这种方式在性能方面有多好?我很乐意,但我没有代表权:(
public static class Common
{
    public static void WriteFile(string fileName, Tuple<string, string> obj)
    {
        var path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
        File.WriteAllText(Path.Combine(path, fileName), JsonConvert.SerializeObject(obj));
    }

    public static Tuple<string, string> ReadFile(string fileName)
    {
        var path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
        return JsonConvert.DeserializeObject<Tuple<string, string>>(File.ReadAllText(Path.Combine(path, fileName));
    }
}
ReadWriteCommand = new Command(() =>
{
    var someObj = Tuple.Create("Stack", "Overflow");

    Common.WriteFile("SushiHangover.txt", someObj);
    var readSomeObj = Common.ReadFile("SushiHangover.txt");
    if ((someObj.Item1 != readSomeObj.Item1) || (someObj.Item2 != readSomeObj.Item2))
        throw new Exception();
});