我有一个接受以下模型的服务电话:
public class ServiceModel {
public DataModel dModel {get; set;}
public JObject schema {get; set;}
}
DataModel负责保存将用于填充用户定义的架构的数据(见下文)。
该模式是用户定义的(在运行时)动态json结构,其中包含这样的标记化值。由于它是用户定义的,因此可以深度嵌套。
{
"id": "<tokenized_id>",
"hero":{
"heroName": "<tokenized_heroName>",
"heroType": "<tokenized_heroType>",
"heroSkill": "<tokenized_heroSkill>",
"heroArmor": {
"armor_id": "<tokenized_armorId>",
...
}
}
}
我要做的是从DataModel中提取数据,并用它替换相应的标记化值。棘手的部分来自于对象深层嵌套的可能性
我的第一个想法是将模式展平为一个字符串,然后对整个字符串进行查找/替换,但是我很好奇是否有一种更优雅的方法。
可以选择使用JObjects甚至是Dictionary,但都不提供访问嵌套对象的好方法。我相信我将需要使用可能会很难看的递归。
有没有更好的方法可以做到这一点?