2017-02-10 5 views
1

Das scheint wirklich einfach, aber ich habe überall gesucht und ich kann keine Dokumentation dafür finden.Wie kann ich JSON-Daten mit Ruby verwenden?

Ich habe folgende JSON-Datei:

//data.json 
{ 
    "movie1": [ 
    {"name": "Inception"} 
]} 

und ich möchte nur den Wert von name Ruby drucken.

json = File.read('data.json') 
data = JSON.parse(json) 
data['movie1']['name'] 

Aber ich erhalte die Störung

"keine implizite conversoin von String in Integer"

Wie kann ich name drucken?

+0

das Ergebnis in Rubin-Betrachtung, z.B. 'pp data' würden Ihnen Hinweise auf das Problem geben. –

Antwort

4

"keine implizite Umwandlung von String in Integer" kommt normalerweise, wenn Sie versuchen, ein Array als Hash zu verwenden. Array[] erwartet einen Index (Integer). Ihre Daten sind ein Hash innerhalb eines Arrays innerhalb eines Hash:

Sie benötigen:

data['movie1'][0]['name'] 

oder

data.dig('movie1', 0, 'name') 
+0

Wow, hätte ich nie gedacht, danke. –

Verwandte Themen