2012-11-23 11 views
5

पर perl हैश को कैसे कॉन्फ़िगर करें मैं template toolkit ढांचे में काम कर रहा हूं। मुझे अपनी टीटी फाइल में एक पर्ल हैश डेटाटाइप मिला है। मैं इस हैश डेटाटाइप को जावास्क्रिप्ट हैश डेटाटाइप में परिवर्तित करना चाहता हूं।जावास्क्रिप्ट हैश

कोड: टेम्पलेट:

 [% PERL %] 
     use JSON qw(encode_json); 

     my $vars = { 

      'version' => 3.14, 
      'days'  => [ qw(mon tue wed thu fri sat sun) ], 
      'cgi'  => CGI->new(), 
      'me'  => { 
       'id'  => 'abw', 
       'name' => 'Andy Wardley', 
      }, 
     }; 

     my $json = encode_json($vars->{'me'}); 
    [% END %] 


<script> 
    function callme(){ 
    var me = [% $json %] 
    } 
</script> 

अब मैं चाहता हूँ मुझे हैश सुलभ होने के लिए जावास्क्रिप्ट में

+3

प्रश्न दिलचस्प है, लेकिन कोड के बिना इसका उत्तर देना असंभव है। –

+0

पर्ल: मेरी $ वार्स = { 'संस्करण' => 3.14, 'दिन' => [qw (सोम मंगल बुध गुरु शुक्र बैठे सूरज)], 'cgi' => CGI-> नई(), 'me' => { 'id' => 'abw', 'name' => 'एंडी वार्डली', }, }; टेम्पलेट: Email [% me.name %]

इस संस्करण है [% संस्करण%]

क्रमांक: [% me.id%] नाम: [% me.name%] अब मैं करने के लिए मेरे हैश चाहते जावास्क्रिप्ट – Kalai

+0

@ कालाई में अपने आप को संपादित करें और इसे एक टिप्पणी में जोड़ने के बजाय इसे (कोड स्वरूपण के साथ) जोड़ें। इसे पढ़ना और याद करना आसान है क्योंकि यह एक टिप्पणी है। – Thor84no

उत्तर

2

CPAN से JSON का उपयोग करें। यह JavaScript Simple Object Notation है और आप इसे सीधे जावास्क्रिप्ट में उपयोग करते हैं।

use JSON qw(encode_json); 

my $vars = { 

    'version' => 3.14, 
    'days'  => [ qw(mon tue wed thu fri sat sun) ], 
    'cgi'  => CGI->new(), 
    'me'  => { 
     'id'  => 'abw', 
     'name' => 'Andy Wardley', 
    }, 
}; 
print encode_json($vars->{'me'}); 

आउटपुट:

{"name":"Andy Wardley","id":"abw} 
+0

encode_json ($ vars -> {'me'} तक कैसे पहुंचे); टीटी फाइल में? – Kalai

+0

यदि आपने इसका उपयोग किया है, तो आप अपने टीटी में 'JSON :: encode_json' कहने में सक्षम होना चाहिए। – simbabque

+0

यह मुझे निम्न त्रुटि फेंक देता है, एक बार जब मैं इस कोड को अपनी टीटी फाइल "encode_json" JSON मॉड्यूल – Kalai

3

यह करने के लिए उपलब्ध कई टीटी प्लगइन्स, जिनमें से सभी अपने खाके में कच्चे पर्ल एम्बेड करने की तुलना में एक बेहतर समाधान हो जाएगा रहे हैं। निजी तौर पर, मैं JSON::Escape पसंद करता हूं, लेकिन कुछ अन्य हैं। कम से कम दैनिक आधार पर टीटी लिखने के 5 से अधिक वर्षों में, मुझे अभी तक [% PERL %] निर्देश का उपयोग करने का सहारा लेना पड़ा है। मैं सीजीआई नहीं लिख रहा हूं, मुझे लगता है। YMMV।

[%- USE JSON.Escape(pretty => 1); 
    SET me = { id => 'abw', name => 'Andy Wardley' }; 
... 
-%] 

<script> 
    function callme() { 
    var me = [% me.json %] 
    ... 
</script> 
संबंधित मुद्दे