我有一个问题,我希望能够基于Newtonsoft.Json在json和我的c#对象模型之间映射的模型,将json路径转换为对象路径。
下面我有一些序列化为json的复杂类型的示例。鉴于我拥有子属性my_child.uppercase
的json路径,我想将其转换为对象属性路径Child.Uppercase
。
是否可以查询Newtonsoft.Json在两个世界之间映射的模型?还是我必须使用反射从头开始构建它?
public class ParentModel
{
// serialised into another name!
[JsonProperty(PropertyName = "my_child")]
public ChildModel Child {get; set;}
}
//serialised into another case!
[JsonObject(NamingStrategyType = typeof(CamelCaseNamingStrategy))]
public class ChildModel
{
public string Uppercase {get; set;}
}
void Main()
{
var item = new ParentModel() {
Child = new ChildModel() {
Uppercase = "Joe"
}
};
// outputs {"my_child":{"uppercase":"Joe"}}
JsonConvert.SerializeObject(item).Dump();
var expected = "Child.Uppercase";
var actual = ConvertJsonPropertiesToObjectProperties("my_child.uppercase");
Debug.Assert(expected == actual);
}
string ConvertJsonPropertiesToObjectProperties(string jsonPropertyNames){
return "implement me!!";
}