繁体   English   中英

使用Json.NET将JSON字符串反序列化为Object C#

[英]Deserialize JSON string to Object C# using Json.NET

我想将我不知道其Type的JSON字符串反序列化为Object类型的Object并能够使用反射访问其属性。 当我用这个

object myObject = JsonConvert.DeserializeObject("{\'Id\':\'1\'}");

myObject的类型是JObject类型,我无法使用反射访问其属性。

有没有办法使用Json.net或任何其他JSON反序列化器?

我认为您可以将对象反序列化为Dictionary<string,string>expandoobject (也可转换为IDictionary<string,object> )然后您不需要使用反射来获取属性,您可以获取它们通过字典。

请参阅: 使用Newtonsoft JSON.NET反序列化Dynamic Json字符串

这不允许您使用反射本身,但ExpandoObject允许您迭代属性:

        string json = "{\'Id\':\'1\'}";
        var converter = new ExpandoObjectConverter();
        dynamic obj = JsonConvert.DeserializeObject<ExpandoObject>(json, converter);

        IDictionary<string, object> dict = (IDictionary<string, object>)obj;
        foreach (string key in dict.Keys)
        {
            Console.WriteLine(key);
        }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM