dynamic获取类型可变的json对象

Posted Leo_wlCnBlogs

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了dynamic获取类型可变的json对象相关的知识,希望对你有一定的参考价值。

使用dynamic获取类型可变的json对象

Dictionary<string, object> dict = new Dictionary<string, object>();
List<dynamic> lst = new List<dynamic>() { new { aa = 1, bb = "2" } };
Type type = lst[0].GetType();
var ps = type.GetProperties();
string[] propertyNames = ps.Select(p => p.Name).ToArray();
foreach (var prop in propertyNames)
{
object propValue = type.GetProperty(prop).GetValue(lst[0], null);
string value = (propValue != null) ? propValue.ToString() : "";
if (!dict.ContainsKey(prop))
{
dict.Add(prop, value);
Console.WriteLine("prop:" + prop + ", value:" + value);
}
}

 

Console.WriteLine("*********************************************************");
var serializer = new javascriptSerializer();
string json = "{\\"banme\\":\\"asd\\"}";
dynamic data = serializer.Deserialize(json, typeof(object)) as dynamic;
var s = data.GetType().GetProperties();
dict.Clear();
foreach (var prop in data.Keys)
{
var value = data[prop];
if (!dict.ContainsKey(prop))
{
dict.Add(prop, value);
Console.WriteLine("prop:" + prop + ", value:" + value);
}
}
Console.Read();

以上是关于dynamic获取类型可变的json对象的主要内容,如果未能解决你的问题,请参考以下文章

Json.net实现方便的Json转C#(dynamic动态类型)对象

Json.net实现方便的Json转C#(dynamic动态类型)对象

未处理的异常:类型'List<dynamic>'不是'String'类型的子类型无法获取json数据[重复]

错误:List<dynamic> 在获取 JSON 时不是 Map<String, dynamic> 类型的子类型

C# 使用dynamic类型来访问JObject对象

未处理的异常:从 jsonplaceholder.typecode.com/photos 获取 Json 时,类型“List<dynamic>”不是“Map<String, dyna