हाय मैं रूबी में नया हूँ और मैं एक NSON हैश को JSON फ़ाइल में सहेजने की कोशिश कर रहा हूँ, अंतिम हैश इस तरह दिखता है:
{"**School**":{"*Students*":{ "Info":{},"Values":{} },"*Teachers*":{ "Info":{},"Values":{} } } }
लेकिन शुरू में हैश खाली होना चाहिए:
{"**School**":{} }
और फिर मुझे हर स्तर पर तत्वों को जोड़ना होगा, जैसे:
{"**School**":{} ,"**Hospital**":{} }
तथा
{"**School**":{ "*Students*":{} } ,"**Hospital**":{} }
तथा
{"**School**":{ "*Students*":{ "*Info*":{ "Name": "Varchar" },"*Values*":{ "Name": "Jane" } } } ,"**Hospital**":{} }
मैंने नीचे वाली चीज़ की तरह कोशिश की, लेकिन यह काम नहीं करता है:
hash = Hash.new
hash[ "**School**" ] = {"Student":{}}
hash[ "**School**" ][ "Student" ] = {"Info":{},"Values":{}}
File.open("saved.json","w") do |f|
f.write(hash.to_json)
आपके समय एवं मदद के लिए धन्यवाद।
उत्तर:
उत्तर № 1 के लिए 1इसे इस्तेमाल करे...
hash = Hash.new
hash[ "**School**" ] = {}
hash[ "**School**" ][ "Student" ] = {}
hash[ "**School**" ][ "Student" ]["Info"] = {}
hash[ "**School**" ][ "Student" ]["Values"] = {}
यह खाली सामग्री के साथ वांछित संरचना में आपके हैश को इनिशियलाइज़ करेगा।
जवाब के लिए 2 № 2
आपकी समस्या यह है कि:
{"Student": {}}
# {:Student=>{}}
है
:Student
और नहीं
"Student"
एक स्ट्रिंग कुंजी को परिभाषित करने के लिए, उपयोग करें:
{"Student" => {}}
to_json
अगर कुंजी एक प्रतीक या स्ट्रिंग है, तो परवाह नहीं करता है, और उन दोनों को एक ही प्रारूप के साथ निर्यात करता है:
require "json"
puts ({a: 1, "a" => 2}.to_json)
# {"a":1,"a":2}
यह डिबगिंग के लिए मदद नहीं करता है।