2015-07-05 9 views
6

पर जावास्क्रिप्ट सरणी मैं AJAX डेटा भेजने के लिए JSON का उपयोग कर रहा हूं। मुझे इनपुट टेक्स्ट बॉक्स से अल्पविराम से अलग मोबाइल नंबर मिल रहा है। और, मैं इसे जावास्क्रिप्ट सरणी में परिवर्तित कर रहा हूं।JSON सरणी

var myarray = {}; 
    myarray = this.model.get('mobileno').split(','); 

परिणाम::
नीचे मेरी कोड है myArray: [ "123", "4567"];

मैं नीचे की तरह अपने मॉडल के लिए एक ही मान सेट करने के लिए जा रहा हूँ:

console.log(this.model.get('mobileno')); 

परिणाम:: mobileno:

this.model.set('mobileno',JSON.stringify(myarray)); 

फिर, मूल्य से नीचे की तरह हो जाता है "[ "123", "4567"] "

तो, मेरा मॉडल बीको मुझे this.model.toJSON();

परिणाम: वस्तु {mobileno: "[" 123 "," 4567 "]}

यहाँ तक सब कुछ सही है। उसके बाद मैं एक और मॉडल के लिए इस मॉडल निर्धारित करने की आवश्यकता है और stringfy कर मुझे नीचे की तरह दे देंगे:

anotherModel.set('data', this.model); 

"डेटा": { "mobileno": "[\" 123 \ ", \" 456 \ { "mobileno": [ "123", "456"]}

आपका मदद की सराहना की जाएगी "]"}

लेकिन, मुझे "डाटा" की तरह की जरूरत है।

+2

आप सरणी को वापस JSON में क्यों परिवर्तित करते हैं? – JJJ

+0

मेरे टेक्स्टबॉक्स में मुझे अल्पविराम से अलग मोबाइल नंबर जैसे 9845098450,9845098451 आदि मिल रहे हैं .. जब मुझे मॉडल से मिलता है तो मुझे इस तरह "9845098450", "9845098451" मिल जाएगा।मुझे {डेटा: {mobileno: ["9845098450", "9845098451"]}} जैसे अनुरोध करने की आवश्यकता है, तो मैं इसे कैसे प्राप्त कर सकता हूं, –

+0

तो? इसके लिए आपको JSON क्यों चाहिए? – JJJ

उत्तर

7

JSON.stringify आपके सरणी से एक स्ट्रिंग बनाता है। यह स्पष्ट रूप से नहीं है कि आप क्या चाहते हैं। या यह वही है जो आप चाहते हैं। मॉडल जैसा आपने कहा

यहां तक ​​कि सब कुछ सही है।

लेकिन दूसरे मॉडल में, आप सरणी को स्ट्रिंग के रूप में सेट नहीं करना चाहते हैं, लेकिन सरणी के रूप में। जैसा कि मैं नहीं जानता कि क्या आप अपने backbone.js साथ क्या कर रहे मैं शुद्ध जावास्क्रिप्ट

data = JSON.parse(this.model.get("mobileno")) 

काम करना चाहिए क्योंकि यह लिखें। लेकिन आप बस

data = { "mobileno": myarray } 

बीटीडब्ल्यू सेट कर सकते हैं। अगर backbone.js जावास्क्रिप्ट ऑब्जेक्ट और सरणी नोटेशन को भ्रमित करने से ज्यादा कुछ नहीं करता है, तो मैं इसे बिल्कुल उपयोग न करने की सलाह दूंगा। जैसा कि आपने हमें बताया है कि backbone.js this.model.get('mobileno')mobileno फ़ील्ड वाली ऑब्जेक्ट देता है। तर्क anything.get('XY') की मेरी दुनिया में XY का मान XY संपत्ति वाले किसी ऑब्जेक्ट को वापस नहीं करना चाहिए।

+0

मुझे यह पसंद आया। यह काम कर रहा है। लेकिन मेरे कोड के साथ समस्या क्या है? –

+2

आपके कोड में कोई समस्या नहीं है, लेकिन जिस तरह से आप जावास्क्रिप्ट ऑब्जेक्ट्स, स्ट्रिंग्स और JSON पर देखते हैं। दरअसल जेएसओएन सिर्फ 'जावा स्क्रिप्ट ऑब्जेक्ट नोटेशन' है, इस प्रकार एक 'JSON.stringify (ARG)' केवल एक स्ट्रिंग देता है, जिसका ऑब्जेक्ट ऑब्जेक्ट की स्थिति लिखने के लिए जावास्क्रिप्ट टेक्स्ट में कॉपी किया जा सकता है। तो यदि आप कहते हैं कि 'obj = JSON.stringify (obj) '' obj' एक स्ट्रिंग होगी, भले ही' obj' पहले क्या था। यदि 'obj' एक स्ट्रिंग था तो यह एक स्ट्रिंग होगी, जिसमें उद्धृत स्ट्रिंग शामिल है। – ikrabbe

+0

अच्छी तरह से समझाया। :) –

संबंधित मुद्दे