如何动态查找和替换嵌套JSON中的值

时间:2019-05-14 04:04:29

标签: c# json json.net

我有一个接受以下模型的服务电话:

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,但都不提供访问嵌套对象的好方法。我相信我将需要使用可能会很难看的递归。

有没有更好的方法可以做到这一点?

0 个答案:

没有答案