如何在C#中将类序列化为JSON字符串以在Xamarin.forms中的Properties App字典中使用

时间:2016-12-26 17:42:17

标签: c# xamarin.forms

我正在尝试在Xamarin.Forms应用程序上保存某些标签的状态。我按照Creating Mobile Apps with Xamarin.Forms本书的步骤进行操作,它显示了如何存储每个值的值,但是当您有多个信息时,建议使用此值:

  

具有更多项目的应用程序可能希望将它们合并到名为AppSettings的类中(例如),将该类序列化为XML或JSON字符串,然后将该字符串保存在字典中。

我迷失了怎么做,我创建了一个简单的类

class AppSettings
{
    public double? gain = null;
    public string mainTitle = "my title";
}

在我的构造函数中,我以这种方式恢复属性

      //! Recover appSettings if some

        IDictionary<string, object> properties = Application.Current.Properties;
        if (properties.ContainsKey("mainTitle"))
        {
            mainTitle.Text = properties["mainTitle"] as string;
        }

        //! New code for loading previous keypad text.
        App app = Application.Current as App;
        mainTitle.Text = app.MainTitle;

我用来保存它的事件是:

void onHomeOptionButtonClicked(object sender, EventArgs args)
        {

            Button buttonClicked = (Button)sender;

            mainTitle.Text =  buttonClicked.Text;
            // !Save keypad text.
            App app = Application.Current as App;
            app.MainTitle = mainTitle.Text;
        }

我不知道的是如何构建我的类,以便它可以序列化为JSON(我也不知道如何进行序列化

我想用这个Javascript的想法在C#中创建一个类:

myAppSettings = {
    HomePage : {
        name1 : "value1",
        name2 : "value2"
        name3 : {
            name3.name1 : "value3.1"
        }
    },
    OtherPage:{
        name1 : "value1",
        name2 : "value2"
    },
    .
    .
    .
};

在C#中执行此操作的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

如果您只关心能够将C#类的实例序列化为json字符串,那么我相信json.Net中的json序列化器/反序列化器将为任何C#对象执行此操作。