【发布时间】:2020-03-10 05:22:13
【问题描述】:
假设我有这些课程:
public class Bar
{
public Foo MyFoo { get; set; }
}
public class Foo
{
public string[] Stuff { get; set; }
}
我有这个 JSON 结构:
{
"MyFoo":
{
"Stuff":"those,are,my,stuff"
}
}
我有一个代码路径,其中 JObject 正在使用如下代码转换为 Bar:
myJObject.ToObject(typeof(Bar))
现在我需要为ToObject 提供一个自定义序列化程序,以将字符串属性Stuff 转换为字符串数组(使用string.Split(...).ToArray())
我被要求不要在客户端类 'Bar' 上添加属性,所以在环顾四周后,它似乎是一个 ContractResolver,但问题是解析器只允许我处理根类型的直接属性,即在我的示例中是 Bar,我无法在嵌套属性上注册 JsonConverter。
所以我对你们的问题是,这甚至可以使用 Json.net 实现吗?
- 请注意,我不仅需要为
Bar类执行此操作,还需要为无限数量的结构未知的类执行此操作,因此我无法硬编码适用于一种类的解决方案。
【问题讨论】:
-
在这里查看解决方案:stackoverflow.com/questions/19581820/…
-
是否正在更新 JSON 源以包含实际的 JSON 数组而不是逗号分隔的字符串?
标签: c# json.net json-deserialization