Вы можете использовать newtonsoft. json, чтобы проанализировать json для JToken, используя
JToken token = JToken.Parse("{ \"someData\": { \"test1\": { \"test2\": { \"test4\": \"data\" }, \"test3\": \"my text\" } } }");
Затем, используя SelectToken, вы можете вычислить путь и получить значение, которое вы получите sh.
JToken result = token.SelectToken("$.someData.test1.test3");
Надеюсь, это поможет!
См. На DotNetFiddle: https://dotnetfiddle.net/7cyRzv