关于动态JSON数据对象的反序列化

JSon反序列化很简单,我们一般直接用 :

Newtonsoft.Json.JsonConvert.DeserializeObject<T>(object);

那么当遇到动态对象Json格式我们要如何处理?

如下:

{
	"status": 0,
	"message": "成功.",
	"results": {
		"aaa": [{
			"aaa1": "12312"
		}],
		"bbb": [{
			"bbb1": "11901"
		}],
		"ccc": [{
			"ccc1": "11301"
		}, {
			"ccc2": "11302"
		}, {
			"ccc3": "11303"
		}]
	}
}

我们可以看到有固定的对象结构属性,也有动态的属性。首先我们要实现我们的这个数据对象实体:

    /// <summary>
    /// 实体对象
    /// </summary>
    public class DataEntity
    {
        public int status { get; set; }
        public string message { get; set; }
        /// <summary>
        /// 使用Dictionary来存储动态属性,使用List来存储数组动态属性也就是[{"aaa1": "12312"}]需要外面加一个List
        /// </summary>
        public Dictionary<string, List<Dictionary<string, string>>> results { get; set; }
    }

我们在序列化之后,取数据只需要取通过foreach循环获取数据即可。

希望对大家有所帮助~得意

来源:程序员的诗意人生--Jesse

猜你喜欢

转载自blog.csdn.net/q506417225/article/details/80354889