C# 动态名称为[Json.net]的反序列化对象

C# 动态名称为[Json.net]的反序列化对象,c#,json,C#,Json,亲爱的 我有一个带格式行的json字符串 "rain":{"3h":0.46} 在本例中,“rain”具有“3h”对象,但具有此名称的对象是动态的,因此我无法使用JsonConvert对其进行反序列化,所以在具有此名称的类中定义了什么 JSON2Charp给我这个代码 public class Rain { public double __invalid_name__3h { get; set; } } javascript中的对象(因此JSON)只是字典。由于您不知道属

亲爱的 我有一个带格式行的json字符串

  "rain":{"3h":0.46}
在本例中,“rain”具有“3h”对象,但具有此名称的对象是动态的,因此我无法使用JsonConvert对其进行反序列化,所以在具有此名称的类中定义了什么

JSON2Charp给我这个代码

    public class Rain
{
    public double __invalid_name__3h { get; set; }
}
javascript中的对象(因此JSON)只是字典。由于您不知道属性名称(更重要的是,因为它以C#中禁止的数字开头),您可以简单地使用字典:

public class MyThing 
{
    public Dictionary<string, double> rain { get; set; }
}
充分发挥作用:

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

public class MyThing
{
    public Dictionary<string, double> rain { get; set; }
}
void Main()
{
var json=@“{”“rain”“:{”“3h”“:0.46}”;
var result=JsonConvert.DeserializeObject(json);
}
公共阶级神话
{
公共字典rain{get;set;}
}
javascript中的对象(因此JSON)只是字典。由于您不知道属性名称(更重要的是,因为它以C#中禁止的数字开头),您可以简单地使用字典:

public class MyThing 
{
    public Dictionary<string, double> rain { get; set; }
}
充分发挥作用:

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

public class MyThing
{
    public Dictionary<string, double> rain { get; set; }
}
void Main()
{
var json=@“{”“rain”“:{”“3h”“:0.46}”;
var result=JsonConvert.DeserializeObject(json);
}
公共阶级神话
{
公共字典rain{get;set;}
}