2011-08-04 11 views
8

मेरा ऐप निम्नलिखित जेसन ऑब्जेक्ट को रेल पर पोस्ट कर रहा है।ने एक जेसन ऑब्जेक्ट दिया, रेल में ऑब्जेक्ट के माध्यम से पुनरावृत्ति कैसे करें

[{\"completed\":false,\"id\":196,\"position\":0,\"title\":\"Item 1\",\"updated_at\":\"2011-08-03T21:17:09Z\"},{\"completed\":false,\"id\":193,\"position\":1,\"title\":\"Item X\",\"updated_at\":\"2011-08-03T21:16:19Z\"},{\"completed\":false,\"id\":197,\"position\":2,\"title\":\"Item 2\",\"updated_at\":\"2011-08-03T21:17:11Z\"},{\"completed\":false,\"id\":192,\"position\":3,\"title\":\"Item Z\",\"updated_at\":\"2011-08-03T21:16:17Z\"},{\"completed\":false,\"id\":194,\"position\":4,\"title\":\"Item Y\",\"updated_at\":\"2011-08-03T21:16:21Z\"},{\"completed\":false,\"id\":195,\"position\":5,\"title\":\"Item P\",\"updated_at\":\"2011-08-03T21:16:25Z\"},{\"completed\":false,\"id\":199,\"position\":6,\"title\":\"Why you no stay done?\",\"updated_at\":\"2011-08-03T23:22:41Z\"},{\"completed\":false,\"id\":200,\"position\":7,\"title\":\"Wow\",\"updated_at\":\"2011-08-04T00:02:07Z\"},{\"completed\":false,\"id\":201,\"position\":8,\"title\":\"Hello World\",\"updated_at\":\"2011-08-04T00:02:11Z\"},{\"completed\":false,\"id\":202,\"position\":9,\"title\":\"GOLDEN GATE BRIDGE CATALYST,\",\"updated_at\":\"2011-08-04T00:44:19Z\"}] 

मैं ऑब्जेक्ट के माध्यम से लूप करने में असमर्थ हूं। मैं कर सकते हैं:

JSON.parse(list_items_open).each do |item| 
    Rails.logger.info item.inspect 
end 

जो आउटपुट:

{"completed"=>false, "id"=>193, "position"=>0, "title"=>"Item X", "updated_at"=>"2011-08-03T21:16:19Z"} 
{"completed"=>false, "id"=>197, "position"=>1, "title"=>"Item 2", "updated_at"=>"2011-08-03T21:17:11Z"} 
{"completed"=>false, "id"=>192, "position"=>2, "title"=>"Item Z", "updated_at"=>"2011-08-03T21:16:17Z"} 
{"completed"=>false, "id"=>196, "position"=>3, "title"=>"Item 1", "updated_at"=>"2011-08-03T21:17:09Z"} 
{"completed"=>false, "id"=>194, "position"=>4, "title"=>"Item Y", "updated_at"=>"2011-08-03T21:16:21Z"} 
{"completed"=>false, "id"=>195, "position"=>5, "title"=>"Item P", "updated_at"=>"2011-08-03T21:16:25Z"} 
{"completed"=>false, "id"=>199, "position"=>6, "title"=>"Why you no stay done?", "updated_at"=>"2011-08-03T23:22:41Z"} 
{"completed"=>false, "id"=>200, "position"=>7, "title"=>"Wow", "updated_at"=>"2011-08-04T00:02:07Z"} 
{"completed"=>false, "id"=>201, "position"=>8, "title"=>"Hello World", "updated_at"=>"2011-08-04T00:02:11Z"} 
{"completed"=>false, "id"=>202, "position"=>9, "title"=>"GOLDEN GATE BRIDGE CATALYST,", "updated_at"=>"2011-08-04T00:44:19Z"} 

लेकिन मैं वास्तविक आईडी नहीं मिल सकता है:

JSON.parse(list_items_open).each do |item| 
    Rails.logger.info item[:id] 
end 

कुछ भी नहीं देता है। आइटम आईडी कैसे प्राप्त करें इस पर सुझाव?

JSON.parse(list_items_open).each do |item| 
    Rails.logger.info item['id'] 
end 

यह एक 'id' कुंजी के साथ एक हैश है:

धन्यवाद

उत्तर

14

प्रतीक और तार अलग बातें (सिवाय जब आप HashWithIndifferentAccess का उपयोग कर रहे हैं), एक प्रमुख के रूप में एक स्ट्रिंग का उपयोग किया जाना चाहिए :

{ "id" => 193 } 

यह एक :id कुंजी के साथ एक हैश है:

{ :id => 193 } 
+0

ऐसा हुआ। धन्यवाद – AnApprentice

+0

कई सारे thanx भाई –

संबंधित मुद्दे