Friday 15 August 2014

json - Convert nested hash table recursively in Perl -


मेरे पास नेस्टेड हैश तालिका है, जैसे:

  {"a": { "B": {"c": {"d": "", "e": ""}, "m": ""}, "f": ""}, "h": {"i": और मैं इसे इस तरह प्रारूप में कनवर्ट करना चाहूंगा:  
  {"j": "", "k": ""}}}   

[{"शीर्षक": "ए", "आईफ़ोल्डर": सच है, "बच्चों": [{"शीर्षक": "बी", "आईफ़ोल्डर": सही "," बच्चों ": [{" शीर्षक ":" c " , "" "{" शीर्षक ":" ई "}]}, {" शीर्षक ":" मी "}}}, {" शीर्षक "" "" "," {Title} ":" i ", {" title ":" g "}}}, {" title ":" h "," isfolder ":" true "," children " "Isfolder": "true", "children": [{"title": "j"}, {"title": "k"}]}]}]

इसलिए मैं एक प्रोग्राम लिखा है:

  #! / Usr / bin / perl JSON का उपयोग करें; $ Json = JSON- & gt; नया- & gt; अनुमति_अनुक्रम; $ Struct = []; उप कन्वर्ट रौ () (($ कच्चा, $ ts) = @_; विदेशी मुद्रा (चाबियाँ% $ कच्चे) {यदि ($ कच्चे- & gt; {$ _}) {पुश @ $ ts, {"title" = & gt; $ _, "आइलफोल्डर" = & gt; "सच", "बच्चों" = & gt; []}; & Amp; कनवर्ट करें ($ कच्चे- & gt; {$ _}, @ $ ts [-1] - & gt; {"बच्चों"}); } और {पुश @ $ ts, {"title" = & gt; $ _}; }}} $ Raw_struct = {"a" = & gt; { "बी" = & gt; { "सी" = & gt; { "डी" = & gt; "", "ई" = & gt; ""}, "मी" = & gt; ""}, "F" = & gt; ""}, "एच" = & gt; { "मैं" = & gt; { "जे" = & gt; "", "कश्मीर" = & gt; ""}}}; & Amp; कनवर्ट करें ($ raw_struct, $ struct); प्रिंट $ json- & gt; सुंदर- & gt; सांकेतिक शब्दों में बदलना ($ struct)। "\ N";   

हालांकि, आउटपुट यह हो गया:

  [{"isFolder": "सच", "बच्चों": [{"आफ़ल" : "शीर्षक": "ए"}, "शीर्षक": "i"}]: "सच", "बच्चों": [{"शीर्षक": "के"}, {"शीर्षक": "j"}, {"शीर्षक": "a"}] , "शीर्षक": "एच"}]   

वाकई उलझन में है क्या आप समझ सकते हैं कि यहां समस्या क्या है?

आपने विश्वव्यापी घोषित चर $ raw और $ ts तो बच्चे के तत्व प्रसंस्करण के दौरान हैश अद्यतन माता पिता तत्वों के भविष्य के प्रसंस्करण को प्रभावित करेगा। : <पूर्व> उप कन्वर्ट रौ {मेरे ($ कच्चे, $ ts) = @_; # बाकी कोड

No comments:

Post a Comment