我有一个类似下面的JSON结构。
{"name":"user1","param":{"showid":"test"}}
我将JSON结构的值传递给一个程序,在该程序中将获取JSON对象的值。 但是每个JSON对象的键值都不同。 所以我无法为JSON对象创建一个结构来检索值。
ie:下次JSON对象可能如下所示。
{"name1":"user2","param1":{"showname":"test1"}}
如何从c#中的JSON结构迭代键值对?
答案 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;
}