2012-08-01 189 views
3

從JSON文件中的值這是一個sample.json文件如下解析在紅寶石

{ 
"name": "Jack (\"Bee\") Nimble", 
"format": { 
    "shape": "rect", 
    "width": 1920, 
    "height": 1080, 
    "interlace": false, 
    "framerate": 24 
} 
} 

在sample.json文件已被打開的規格文件。

describe Samplespec do 
    before :all do 
    @jsonfile = File.open('sample.json').read 
    @file_json = Samplespec.new(@jsonfile) 
end 

我在sample.rb文件

require 'json' 
def initialize(val) 
@parsed_val = JSON.parse(val) 
end 

這似乎並不工作寫這個。請幫忙。謝謝

+2

似乎沒有工作?你會得到什麼錯誤,會發生什麼? – 2012-08-01 13:06:11

+0

sample.json文件原樣顯示{「name」:「Jack(\」Bee \「)Nimble」, 「format」:{ 「shape」:「rect」, 「width」: 1920, 「height」:1080, 「interlace」:false, 「framerate」:24 } } – user1568617 2012-08-01 13:08:40

回答

3

您可能會看到JSON.parse的輸出與Ruby的Hash#to_s的格式與JSON大致相同。此代碼(代碼)工作對我來說:

json = '{ 
"name": "Jack (\"Bee\") Nimble", 
"format": { 
    "shape": "rect", 
    "width": 1920, 
    "height": 1080, 
    "interlace": false, 
    "framerate": 24 
} 
}' 

require 'json' 
def parse(val) 
@parsed_val = JSON.parse(val) 
end 

json = parse(json) 

puts json 
puts json['name'] 

所以,第一個puts會再次出現,以輸出JSON(它只是哈希#to_s),但第二puts將正確的預期輸出只是name關鍵。