У меня есть следующий Json:
[
{
"id": 3707571,
"name": "Gekochte Eier in Senfsauce, dazu Kartoffeln - oder Kartoffelpüree",
"category": "Angebot 1",
"prices": {
"students": 1.4,
"employees": 3.1,
"pupils": null,
"others": 3.1
},
"notes": [
"Vegetarisch"
]
},
{
"id": 3709978,
"name": "Currywurst mit hausgemachter Currysauce und Pommes frites, dazu bunter Salat",
"category": "Angebot 2",
"prices": {
"students": 2,
"employees": 3.9,
"pupils": null,
"others": 3.9
},
"notes": [
"Schweinefleisch"
]
}
]
Когда я удаляю Price
, десериализация работает нормально, и я могу преобразовать ее в объект, используя Json.NET в C #.
Но с учетом цены я получаю сообщение об ошибке, в котором говорится, что ее можно десериализовать только с помощью массива Json.
Объект, который я использовал для десериализации его:
namespace TelegramBot
{
class Angebot
{
[JsonProperty("id")]
public int id { get; set; }
[JsonProperty("name")]
public string name { get; set; }
[JsonProperty("category")]
public string category { get; set; }
[JsonProperty("prices")]
public List<float> prices { get; set; }
[JsonProperty("notes")]
public IList<string> notes { get; set; }
}
}
Как я могу десериализовать цены в список с плавающей точкой (или другой тип данных) в C #?
Редактировать:
Как и предполагалось, я изменил свойство цены на массив.Ошибка по-прежнему возникает.
Сообщение об ошибке:
Невозможно десериализовать текущий объект JSON (например, {"name": "value"}) в тип 'System.Single [] 'потому что для корректной десериализации типу требуется массив JSON (например, [1,2,3]).Чтобы исправить эту ошибку, либо измените JSON на массив JSON (например, [1,2,3]), либо измените десериализованный тип так, чтобы это был нормальный тип .NET (например, не примитивный тип, например, целое число, а не тип коллекции, например,массив или список), которые можно десериализовать из объекта JSON.
JsonObjectAttribute также можно добавить к типу, чтобы заставить его десериализовать из объекта JSON.
Для десериализации Json, который я используюследующая команда:
IList<Angebot> angebotsListe = JsonConvert.DeserializeObject<List<Angebot>>(mealsInformation);
питаниеИнформация - это строка Json.