目前,我有这个 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);
}
}
现在我需要更深一层,例如将另一个数组插入 value3。这是任意的,所以 value4 可以是不同的东西。怎么可能做到这一点?
最后,我将数据写入 MongoDB,如果类型是 JArray 或 JObject,则驱动程序不起作用。但是我需要结构化数据,一个字符串是不够的。