如何使用动态(数字)键名反序列化子对象?

我如何在.net中使用newtonsoft json.net在json结构下反序列化。


{

    "users" : {

        "parentname":"test",

        "100034" : {

            "name"  : "tom",

            "state" : "WA",

            "id"    : "cedf-c56f-18a4-4b1"

        },

        "10045" : {

            "name"  : "steve",

            "state" : "NY",

            "id"    : "ebb2-92bf-3062-7774"

        },

        "12345" : {

            "name"  : "mike",

            "state" : "MA",

            "id"    : "fb60-b34f-6dc8-aaf7"

        }

    }

}

我尝试了下面的代码,但无法正常工作。我收到错误“将值“ test”转换为类型“ ConsoleApplication2.User”时出错。路径“ users.parentname”,第5行,位置35。”


class Program

    {

        static void Main(string[] args)

        {

            string json = @"

        {


            ""users"": {

                ""parentname"":""test"",

                ""10045"": {

                    ""name"": ""steve"",

                    ""state"": ""NY"",

                    ""id"": ""ebb2-92bf-3062-7774""

                }

            }

        }";


            RootObject root = JsonConvert.DeserializeObject<RootObject>(json);

        }

    }


    class RootObject

    {

        public string ParentName { get; set; }

        public Dictionary<string, User> users { get; set; }

    }

    class User

    {

        public string name { get; set; }

        public string state { get; set; }

        public string id { get; set; }

        public string ParentName { get; set; }

    }

请提出建议。


开心每一天1111
浏览 403回答 2
2回答
打开App,查看更多内容
随时随地看视频慕课网APP