例如,有一个像下面这样的对象:
public class Container
{
public object Data { get; set; }
}
它的使用方法如下:
Container container = new Container
{
Data = new Dictionary<string, object> { { "Text", "Hello world" } }
};
如果我反序列化一个从上述实例序列化得到的JSON字符串,即使我提供了ExpandoObjectConverter
,Data
属性也不会被反序列化为ExpandoObject
:
Container container = JsonConvert.Deserialize<Container>(jsonText, new ExpandoObjectConverter());
如何将分配给匿名对象或至少非具体类型的类属性反序列化为ExpandoObject
?
编辑:
有人回答说我可以使用动态对象。这对我不起作用。我知道我可以这样做,但这不是这种情况,因为我需要一个ExpandoObject。 谢谢。
编辑2:
另一位用户回答说我可以将JSON字符串反序列化为ExpandoObject
。这不是这个问题的目标。我需要反序列化一个具有动态属性的具体类型。在JSON字符串中,此属性可以是关联数组。
ExpandoObject
。但这比较困难:我需要反序列化一个具有动态属性的具体类型。当反序列化时,我希望整个属性作为ExpandoObject
返回。 - Matías FidemraizerData
属性没有被反序列化为ExpandoObject
,而是一个JContainer
(JSON.NET 特定类型)。我需要整个Data
作为ExpandoObject
。 - Matías Fidemraizer