反序列化json对象xamarin android c#

本文关键字:android xamarin 对象 json 反序列化 | 更新日期: 2023-09-27 17:59:53

我对反序列化json对象没有什么问题。我的json来自http url:

我下载的JSON 的屏幕

我不知道如何反序列化来动态创建按钮。我知道如何用文本创建按钮,但我不知道如何用现有的选项来创建按钮。我试图在Windows窗体应用程序中获取这些选项进行测试,但应用程序将崩溃。谢谢你的帮助。

反序列化json对象xamarin android c#

您的类应该类似于:

public class Type
{
    public int id { get; set; }
    public string name { get; set; }
    public bool closedQuestion { get; set; }
    public bool multiAnswer {get; set;}
    public bool usesImage {get; set; }
}
public class RootObject
{
    public int id { get; set; }
    public string name { get; set; }
    public Type type { get; set; }
    public List<string> options { get; set; }
}

然后,您应该能够使用Newtonsoft.json:反序列化json

List<RootObject> myData = JsonConvert.DeserializeObject<List<RootObject>>(json);

使用Newtonsoft.NET:

var obj = JsonConvert.DeserializeObject(json);

您还可以创建一个配对类并使用泛型:

public JsonClass {
    // Do this for each property you want to map.
    [JsonProperty(PropertyName="id")]
    public int Id { get; set; }
    [JsonProperty(PropertyName="name")]
    public int Name { get; set; }
    [JsonProperty(PropertyName="type")]
    public MessageType Message { get; set; }
}
public class MessageType {
    [JsonProperty(PropertyName="id")]
    public int Id { get; set; }
    // etc...
}

然后执行:

JsonClass obj = JsonConvert.DeserializeObject<JsonClass>(json);
MessageType messageType = obj.Message;