В настоящее время, у меня есть JSon структура:десериализация глубоко вложенных массивы
{
key1: value1,
key2:
[
{key3: value3}
{key4: value4}
]
}
и десериализации его в типы
IDictionary<string, object>
IDictionary<string, IList<Dictionary<string, object>>>
с использованием CustomCreationConverter:
public class NestedArrayConverter : CustomCreationConverter<IList<Dictionary<string, object>>>
{
public override IList<Dictionary<string, object>> Create(Type objectType)
{
return new List<Dictionary<string, object>>();
}
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
{
if (reader.TokenType == JsonToken.StartArray)
return base.ReadJson(reader, objectType, existingValue, serializer);
return serializer.Deserialize(reader);
}
}
Теперь мне нужно идти на один уровень глубже, например подключение другого массива в значение3. Это произвольно, поэтому value4 может быть чем-то другим. Как это можно сделать?
В конце я записываю данные в MongoDB, и драйвер не работает, если тип JArray или JObject. Однако мне нужны структурированные данные, строки недостаточно.
Почему строки недостаточно? Не можете ли вы просто написать строку с JSON в базу данных? –
Данные должны быть доступны для запроса на первом уровне, например. для значения1. Это исключает преобразование всего объекта в строку. Однако это может быть частично строка. См. Мой ответ. –