Zugriff auf Hashes und Arrays Ruby

In meiner Rails-Anwendung sende ich einen komplexen JSON-String, der dekodiert werden muss. Das ist nicht das Problem, von dem ich weiß, wie.

Bevor ich jetzt alles implementiere, versuche ich, auf einige Beispiel-JSON-Strukturen zuzugreifen, um zu sehen, ob ich auf alle Variablen zugreifen kann. Das Problem ist, dass die Namen variabel sein können.

<code>{"configurations" : [ 
{ "drinks" : [
        {"menus" : [
          { "hot" : [
            {"id":15,"unit":"0.33", "price":"1", "currency":"Euro", "position": 4},
            {"id":15,"unit":"0.33", "price":"1", "currency":"Euro", "position": 6}
          ] },

          { "cold" : [
        {"id":15,"unit":"0.33", "price":"1", "currency":"Euro", "position": 4},
            {"id":15,"unit":"0.33", "price":"1", "currency":"Euro", "position": 6}
           ] },

          { "terminals" : [ {"id" : 4}, {"id": 6}, {"id": 7} ] }, 

          { "keys" : { "debit" : "on", "credit": "off" }  }

        ] }
] } ] } 
</code>

Ok, jetzt die folgenden Feldersind variabel: "Getränke", "heiß", "kalt". Alle anderen Felder werden gleich bezeichnet.

Jetzt möchte ich auf jede Variable in dieser JSON-Zeichenfolge zugreifen, nachdem ich sie dekodiert habe. Vor der Implementierung habe ich ein einfaches JSON ausprobiert:

<code>{"configuration" : [ { "drinks" : [ { "id":15, "unit":"0.33" } ] } ] }
</code>

Nach dem Entschlüsseln in Schienen ergibt sich

<code>{ "configuration" => [{"drinks" => [{"id" => 15, "unit" => "0.33" }]}]}
</code>

Nun, wie kann ich zum Beispiel zugreifenid undunit ohne das Wort "Getränke" zu verwenden. Die Lösung sollte auch auf das obige Beispiel skalierbar sein.

Einige zusätzliche Informationen: In der großen JSON sollte ich auf alle dort aufgelisteten Elemente zugreifen (die IDs), sie in einer Tabelle speichern und die neue ID zurückgeben und sie dann wieder in die JSON einfügen. (Wenn Sie erklären, warum dies erforderlich ist, benötigen Sie eine zusätzliche Seite oder 4 ^^).

Antworten auf die Frage(3)

Ihre Antwort auf die Frage