Я пытаюсь сериализовать эту модель
public class Rootobject
{
public Los los { get; set; }
public int Id { get; set; }
}
public class Los
{
[JsonConverter(typeof(DictionaryToJsonObjectConverter))]
public Dictionary<DateTime, List<Item>> items { get; set; }
}
public class Item
{
public string currency { get; set; }
public int guests { get; set; }
public int[] price { get; set; }
}
, и я получаю это
{
"los": {
"items": {
"2020-01-10T00:00:00+01:00": [
{
"currency": "EUR",
"guests": 1,
"price": [
443
]
}
],
"2020-01-11T00:00:00+01:00": [
{
"currency": "EUR",
"guests": 1,
"price": [
500
]
}
]
}
},
"Id": 1
}
, и я хотел бы получить этот ответ
{
"los": {
"2020-01-10T00:00:00+01:00": [
{
"currency": "EUR",
"guests": 1,
"price": [
443
]
}
],
"2020-01-11T00:00:00+01:00": [
{
"currency": "EUR",
"guests": 1,
"price": [
500
]
}
]
},
"Id": 1}
Я хотел бы использовать атрибуты для достижения этой цели, но я не уверен, как.
Я пытался написать свой собственный конвертер json, но это не очень помогло
public class DictionaryToJsonObjectConverter : JsonConverter
{
public override bool CanConvert(Type objectType)
{
return typeof(IDictionary<DateTime, List<Item>>).IsAssignableFrom(objectType);
}
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
{
throw new NotImplementedException();
}
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
{
writer.WriteRawValue(JsonConvert.SerializeObject(value, Formatting.Indented));
}
}