【发布时间】:2013-07-25 08:20:42
【问题描述】:
我在将一些 JSON 字符串反序列化回 .net 对象时遇到问题。我有一个容器类,其中包含来自外部的一些信息,并且有一个字段调用ClassType,它定义了该信息的类型,实际内容在另一个属性中,当前可以是任何东西,所以我们将其定义为对象输入。
以下是有助于理解问题的 .net 类定义。
class ClassOne
{
public string Name { get; set; }
public int Age { get; set; }
}
class ClassTwo
{
public string AddressLine { get; set; }
public string AddressLine2 { get; set; }
}
class ClassThree
{
public string Country { get; set; }
public string Passport { get; set; }
}
class ContainerClass
{
public string ClassType { get; set; }
public object ClassContent { get; set; }
}
当以 JSON 格式从外部获取信息时,它将类似于:
{"ClassType":"Class1","ClassContent":{"Name":"James","Age":2}}
我正在使用 Newtonsoft JSON.net 库来反序列化 JSON 字符串。似乎默认的反序列化函数只会将其反序列化为Newtonsoft.Json.Linq.JContainer。我只是想知道如何根据ClassType 定义编写一些转换器来反序列化ClassContent。任何代码示例都将受到高度赞赏。
【问题讨论】:
标签: c# .net serialization json.net deserialization