jsonファイルがあります。私は情報を格納するためにそれを使用しています。そのため、常に読み書きされています。rubyで簡単に読み書きできるjson文字列
私はまったく新しいルビーとoopですので、私は狂った方法でこれについて行くと確信しています。
class Load
def initialize(save_name)
puts "loading " + save_name
@data = JSON.parse(IO.read($user_library + save_name))
@subject = @data["subject"]
@id = @data["id"]
@save_name = @data["save_name"]
@listA = @data["listA"] # is an array containing dictionaries
@listB = @data["listB"] # is an array containing dictionaries
end
attr_reader :data, :subject, :id, :save_name, :listA, :listB
end
example = Load.new("test.json")
puts example.id
=> 937489327389749
これでjsonファイルを簡単に読み取ることができますが、どのようにファイルに書き戻すことができますか? id example.id.change(7129371289)
...を変更したい、またはリストAとBに辞書を追加したいとします...これは可能ですか?
------------- UPDATE --------------
私はそれが働いて持っているが、私はそれが人を怒らせると確信しています...私はそれを以下に含めました。
class Load
def initialize(save_name)
puts "debug printed from inside 'Load'"
puts "loading " + save_name
@data = JSON.parse(IO.read($user_library + save_name))
@subject = @data["subject"]
@id = @data["id"]
@is_a = @data["is_a"]
@save_name = @data["save_name"]
@listA = @data["listA"]
@listB = @data["listB"]
def append(dataID, input)
puts "debug printed from inside 'Load' 'append'"
puts dataID
puts input
if dataID == "ListA"
puts "yes this is ListA"
append = @data
append["listA"] << input
puts append
File.open($user_library + append["save_name"], "w") do |f|
f.write(append.to_json)
end
end
if dataID == "ListB"
puts "yes this is ListB"
append = @data
append["listB"] << input
puts append
File.open($user_library + append["save_name"], "w") do |f|
f.write(append.to_json)
end
end
end
end
attr_reader :data, :subject, :id, :save_name, :listA, :listB
end
puts "OPENING SAVED SUBJECT"
puts Load.new("animals.json").listA
puts "CALLING APPEND"
new_hash = {"cow" => "horse"}
Load.new("animals.json").append("ListA", new_hash)
おかげで、行の2日間を:)...私はそれが私の方法で作業を取得するために管理しています彼らが見ていることを知っている人々が見た場合、フィット感があると思います。私はそれを私の元の質問の編集として含めます。 – beoliver