xamarin c#反序列化包含嵌套对象的Json

时间:2016-10-03 06:28:10

标签: c# json serialization xamarin.android

我有一个以这种格式返回Json的web服务:

[{
    "Route0": {
        "RouteID": "AAA",
        "RouteDescription": "",
        "ReturnCode": "0",
        "ReturnError": ""
    }
}, {
    "Route1": {
        "RouteID": "AABCLO",
        "RouteDescription": "Antoine Abdo Bachaalani Close",
        "ReturnCode": "0",
        "ReturnError": ""
    }
}]

我需要反序列化它: 我创建了2个类:

public class PullRouteDetailsObjectChild
    {
        public string RouteID { get; set; }
        public string RouteDescription { get; set; }
        public string ReturnCode { get; set; }
        public string ReturnError { get; set; }
    }

    public class PullRouteDetailsObject
    {
        public PullRouteDetailsObjectChild Route { get; set; }
    }

我正在使用此代码反序列化:

    List<PullRouteDetailsObject> jsonRoutes =      
JsonConvert.DeserializeObject<List<PullRouteDetailsObject>>(jsonresult);

我能够获得2个正确的PullRouteDetailsObject列表但是子对象始终为null。 我确信我错过了一些但却找不到的东西。我需要访问子对象  谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

你需要改用它:

var jsonRoutes = JsonConvert.DeserializeObject<List<Dictionary<string, PullRouteDetailsObject>>>(jsonresult);

当您获得带有属性的对象列表时,其中包含您的&#39; PullRouteDetailsObject&#39; (Route0,Route1)。