Nach einem bestimmten JToken anhand seines Namens in einer JObject-Hierarchie suchen

Ich habe eine Json-Antwort vom Server, zum Beispiel:

{"routes" : [
  {
     "bounds" : {
        "northeast" : {
           "lat" : 50.4639653,
           "lng" : 30.6325177
        },
        "southwest" : {
           "lat" : 50.4599625,
           "lng" : 30.6272425
        }
     },
     "copyrights" : "Map data ©2013 Google",
     "legs" : [
        {
           "distance" : {
              "text" : "1.7 km",
              "value" : 1729
           },
           "duration" : {
              "text" : "4 mins",
              "value" : 223
           },

Und ich möchte den Wert des Tokens "Text" von erhalten

      "legs" : [
        {
           "distance" : {
              "text" : "1.7 km",
              "value" : 1729
           },

Das ist ein String mit dem Wert "1.7 km".

Frage: Gibt es eine eingebaute Funktion in NewtonsoftJson lib, die so aussehen kann:

public string(or JToken) GetJtokenByName(JObject document, string jtokenName)

Oder muss ich eine rekursive Methode implementieren, die JToken nach Namen in allen JTokens und JArrays in JObject sucht?