2016-10-03 65 views
0

Dearl所有 我有一个JSON字符串格式线DeserializeObject与动态命名[Json.net]

"rain":{"3h":0.46} 

在这种情况下,“雨”具有“3H”对象,但具有此名称是动态的,所以我不能用JsonConvert反序列化它,所以在这个类中定义了什么名字?

Json2Csharp给我这个代码在JavaScript(因此JSON)

public class Rain 
{ 
    public double __invalid_name__3h { get; set; } 
} 

回答

2

对象是简单地字典。既然你不知道属性名称(以及更重要的,因为它与在C#禁止数字开头),你可以简单地使用字典:

public class MyThing 
{ 
    public Dictionary<string, double> rain { get; set; } 
} 

然而,你的JSON是不完整的。它应该是:

{"rain":{"3h":0.46}} 

完全工作:

void Main() 
{ 
    var json = @"{""rain"":{""3h"":0.46}}"; 
    var result = JsonConvert.DeserializeObject<MyThing>(json); 
} 

public class MyThing 
{ 
    public Dictionary<string, double> rain { get; set; } 
}