在C#中从JSON对象中获取值

时间:2013-07-11 05:48:15

标签: c# json

我有一个类似下面的JSON结构。

  {"name":"user1","param":{"showid":"test"}}

我将JSON结构的值传递给一个程序,在该程序中将获取JSON对象的值。 但是每个JSON对象的键值都不同。 所以我无法为JSON对象创建一个结构来检索值。

ie:下次JSON对象可能如下所示。

  {"name1":"user2","param1":{"showname":"test1"}}

如何从c#中的JSON结构迭代键值对?

1 个答案:

答案 0 :(得分:4)

您可以使用System.Web.Script.Serialization.JavaScriptSerializer(System.Web.Extensions.dll)并将其加载到“dynamic”数据类型中,然后您可以像字典一样访问属性。

或者您可以使用反射来查找可用的属性/字段,并获取字段/属性的值。

public static Dictionary<string, object> ToPropertyDictionary(this object obj)
{
    var dictionary = new Dictionary<string, object>();
    foreach (var propertyInfo in obj.GetType().GetProperties())
        if (propertyInfo.CanRead && propertyInfo.GetIndexParameters().Length == 0)
            dictionary[propertyInfo.Name] = propertyInfo.GetValue(obj, null);
    return dictionary;
}