c # json с изменяющимся классом

#c# #json #class #dynamic

#c# #json #класс #динамический

Вопрос:

 public class 2500113075262000    {
    public string pair { get; set; } 
    public string type { get; set; } 
    public double amount { get; set; } 
    public int rate { get; set; } 
    public string timestamp_created { get; set; } 
    public int status { get; set; } 
}

public class Return    {
    public 2500113075262000 2500113075262000 { get; set; } 
}

public class Root    {
    public int success { get; set; } 
    public Return @return { get; set; } 
}
 

класс 2500113075262000 постоянно меняется, это идентификатор заказа, например, десериализация

 {"success":1,"return":{"2500113075262000":{"pair":"eth_rur","type":"sell","amount":0.00110569,"rate":46100,"timestamp_created":"1608918997","status":0}}}
 

Комментарии:

1. Было бы действительно полезно, если бы вы показали JSON, который пытаетесь десериализовать. Я подозреваю, что вы на самом деле хотите a Dictionary<string, Order> или что-то подобное, но трудно сказать только из того, что вы нам показали.

2. {«success»:1,»return»:{«2500113075262000»:{«pair»:»eth_rur»,»type»:»sell»,»amount»:0.00110569,»rate»:46100,»timestamp_created»:»1608918997″,»status»:0}}}

3. Пожалуйста, отредактируйте свой вопрос, чтобы показать JSON, а не помещать его в качестве комментария.

4. постоянно меняющийся класс — я бы настоятельно рекомендовал изменить ваш код, чтобы ваш класс остался прежним.

Ответ №1:

Похоже, что меняется только ключ — предположительно, идентификатор заказа. Я бы предложил полностью удалить ваш Return класс и изменить ваш Root класс на a Dictionary<string, Order> . Я бы также предложил писать ваши классы с идиоматическими именами свойств .NET и использовать JsonPropertyAttribute для указания представления в JSON. Так что это было бы что-то вроде этого:

 public class Order
{
    [JsonProperty("pair")]
    public string Pair { get; set; }

    [JsonProperty("type")]
    public string Type { get; set; }

    // etc, other properties
}

public class Root
{
    [JsonProperty("success")]
    public int Success { get; set; }

    [JsonProperty("return")]
    public Dictionary<string, Order> Returns { get; set; }
}