Я пытаюсь десериализовать объект JSON в соответствии с моей моделью, используя код ниже:
LoadData<MyModel>(Data.Stats, null);
public void LoadData<TModel>(string data, JsonSerializerSettings jsonSettings) where TModel : class
{
var mockData = JsonConvert.DeserializeObject<Collection<TModel>>(data, jsonSettings); // ERROR HERE
Context.SaveChanges();
}
Однако я получаю сообщение об ошибке
Newtonsoft.Json.JsonReaderException: 'При синтаксическом анализе значения обнаружен неожиданный символ: {.Путь '[0] .Statistics', строка 7, позиция 19. '
Мой объект JSON:
[
{
"Id": 3033,
"Grade": 3,
"Statistics": { //ERROR OCCURS ON THIS PROPERTY
"Avatar.Add": 1,
"TotalPlays": 36,
"Game.TotalPlays.Spell_Mem_Words": 27,
"Book.TotalReads.Count": 23,
"Game.TotalPlays.Count": 39,
"Character.TotalPlays.L": 23,
"Character.TotalPlays.E": 3,
"TotalPlays.Pick_Vocab": 16,
"Character.TotalPlays.R": 22
}
}
]
Модель объекта:
public class MyModel
{
public int Id { get; set; }
public int Grade { get; set; }
public string Statistics { get; set; }
}
Вещи, которые я пробовал
(1) Используя json lint Я убедился, что строка json действительна.
(2)В javascript работает сериализация объекта с обратными галочками вокруг него.Обратные пометки не работают в C # JS Fiddle
(3) Попытка создать свойство Statistics в объектной модели, чтобы использовать класс с именем stats вместо строки, такой как
public class Stats
{
public string Label { get; set;}
public int Value { get; set; }
}
(4) Опробовал почти все ответы на этот пост
К сожалению, я до сих пор не решил эту проблему.Есть идеи?