日期:2014-05-18  浏览次数:20958 次

JSON 转C# 对象 动态key

{
"name": "甄嬛体",
"2012-05-04 14:59": "5724"
}



以上是新浪微博API获取到的数据https://api.weibo.com/2/trends/weekly.json

当创建c#中对应的类时,字段name可以写成

public string name{get;set;]

但是时间那个key应该怎么写才能在C#类中取到对应的value值,时间那个key("2012-05-04 14:59")获取到的是不断变化的。

这次是"2012-05-04 14:59" ,下次可能是别的。

------解决方案--------------------
由于是不标准的序列化对象类型,因此你无法通过标准的反序列化类来实现,需要自定义一个序列化类或者简单点,直接自定义一个方法解析Json数据。解析后的数据用Dictionary来存放。
------解决方案--------------------
C# code
            string str = "{\"name\": \"甄嬛体\",\"2012-05-04 14:59\": \"5724\"}";
            JavaScriptObject obj = JavaScriptConvert.DeserializeObject(str) as JavaScriptObject;
            foreach (KeyValuePair<string, object> k in obj)
            {
                Console.WriteLine("Key:{0} Value:{1}", k.Key, k.Value);
            }
/*
Key:name Value:甄嬛体
Key:2012-05-04 14:59 Value:5724

*/