2012-07-20 69 views
0

我有一些文件中包含此JSON部分(從Facebook API):如何解析一個JSON朋友列表在Ruby中散列?

--- !seq:Koala::Facebook::API::GraphCollection - name: pop ool id: "1032225" - name: Rose kak id: "2312010" 

和紅寶石我嘗試這樣做:

jsonFriends = File.open("friends.json" ,"r") 

puts JSON.parse(jsonFriends.readline) 

,但我得到這個錯誤:

from /usr/local/Cellar/ruby/1.9.3-p194/lib/ruby/1.9.1/json/common.rb:148:in `parse' from try.rb:22:in `<main>' 
+0

這看起來並不像JSON,我在所有。 – 2012-07-20 11:49:06

+0

確實,這看起來很像YAML給我 – fuzzyalej 2012-07-20 13:01:06

回答

3

這就是YAML,而不是JSON

require 'yaml' 

friends = YAML.load(File.read('friends.json')) 
+0

不起作用.... – 0x90 2012-07-20 15:17:58

+0

/usr/local/Cellar/ruby/1.9.3-p194/lib/ruby/1.9.1/psych.rb:203:in '解析':():塊序列條目未在此上下文中位於第1行的列48(精極度緊張::的SyntaxError) \t從/usr/local/Cellar/ruby/1.9.3-p194/lib/ruby/允許1.9.1/psych.rb:203:在'parse_stream ' \t從/usr/local/Cellar/ruby/1.9.3-p194/lib/ruby/1.9.1/psych.rb:151:in'解析' \t從/usr/local/Cellar/ruby/1.9.3-p194/lib/ruby/1.9.1/psych.rb:127:in'負載 '從try.rb \t:24:在'

' – 0x90 2012-07-20 15:19:10

+0

要解析的文本來自Facebook圖形API ... – 0x90 2012-07-20 15:26:28

0

試試吧

require 'json' 
result = File.read("friends.json") 
puts JSON.parse(result) 
+0

那有什麼不同? – 2012-07-20 11:57:31

+0

'結果= File.read( 「issues.json」) p結果# 「{\」 狀態\ 「:801,\」 錯誤\ 「:[\」 爲「\登錄失敗 「]} \ n」 個' --------------- 'R = File.open( 「issues.json」, 'R') PR ## <文件:issues.json>' 僅打開開該文件但沒有閱讀它。 – 2012-07-20 12:12:46

+0

我固定的問題有jsonFriends.readline – 0x90 2012-07-20 12:43:12