#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; }
}