Задать вопрос
GetB
@GetB

Как десериализовать JSON в C# класс, если у класса должно быть имя в виде числа?

Пример JSON:
{
    "status": "ok",
    "count": 1,
    "data": {
        "10663586": {
            "achievements": {

            },
            "client_language": "ru",
            "statistics": {
                "clan": {

                },
                "all": {

                },
                "max_xp": 2236,
                "company": {

                },
                "historical": {

                },
                "max_damage": 5852,
                "max_damage_vehicle": 7169
            },

        }
    }
}


Пример C#:
public class Achievements
{
    
}

public class Clan
{
    
}

public class All
{
    
}

public class Company
{
    
}

public class Historical
{
    
}

public class Statistics
{
    
}

public class __invalid_type__10365588
{
    
}

public class Data
{
    public __invalid_type__10365588 __invalid_name__10365588 { get; set; }
}

public class RootObject
{
    public string status { get; set; }
    public int count { get; set; }
    public Data data { get; set; }
}


Проблема кроется в классе с именем __invalid_type__10365588.
Возможно в JSON.NET присутствует некий функционал, о котором я не знаю, но он позволит исправить эту проблему.

Спасибо.
  • Вопрос задан
  • 2878 просмотров
Подписаться 2 Оценить Комментировать
Решения вопроса 2
easyman
@easyman
Используйте dynamic
Ответ написан
dabrahabra
@dabrahabra
.NET Developer
Если вы используете Newtonsoft.Json то как вариант проблема должна решаться с помощью Dictionary - в вашем случае поле data будет что то вроде:
public class RootObject
{
    public string status { get; set; }
    public int count { get; set; }
    public Dictionary<String,Data> data { get; set; }
}
public class Data
{
  public Achievements achievements { get; set; }
  public string client_language { get; set; }
  //... и т.д.
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы