2016-10-03 68 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; } 
}