我有以下 DTO
public class Foo
{
public ServiceStack.Text.JsonObject Bar { get; set; }
}
Foo.Bar
可以是其他 3 个 DTO 中的一个
在我的代码中的某个地方,我想映射/转换/反序列Foo.Bar
化到具体的 DTO(我知道ServiceStack.Text.JsonObject
实现System.Collection.Generic.Dictionary<string, string>
- 有趣的是,作为非字符串传输的值,作为字符串进入我的ServiceStack.Text.JsonObject
-instance)。
所以我试过了
ServiceStack.Text.JsonExtensions.JsonTo<ConcreteDTO>(foo.Bar, ???)
但它需要一个键选择器作为第二个参数 - 但我不想转换单个值,而是我会选择整个实例。
我也知道有ServiceStack.Text.JsonExtensions.ConvertTo<T>(JsonObject jsonObject, Func<JsonObject, T> convertFn)
,但我不想转换 jsonObject 手工编码。
那么,我该如何解决呢?
编辑:
为了清楚起见 - 我不想绕道而行并将JsonObject
-instance 序列化为 json-string 只是为了反序列化它......是否有任何直接反序列化选项JsonObject
?