2012-03-03 14 views
5

मैं निम्नलिखित है:जेएसओएन के रूप में एक ऐरे आउटपुट कैसे करें?

@array.inspect 
["x1", "x2", "adad"] 

मुझे लगता है कि करने के लिए स्वरूपित करने के लिए सक्षम होने के लिए करना चाहते हैं:

client.send_message(s, m, {:id => "x1", :id => "x2", :id => "adad" }) 
client.send_message(s, m, ???????) 

मैं में @array उत्पादन कैसे हो सकता है ??????? एक आईडी के रूप में अंतरिक्ष?

धन्यवाद

+0

हैश की चाबियाँ अद्वितीय हैं। यदि आप इसे आजमाते हैं तो आप 'id' के लिए केवल उन मानों में से एक के साथ समाप्त हो जाएंगे। क्या आप वाकई आईडी की सूची मांग रहे हैं? – jdl

+0

यह शायद सच है लेकिन जिस तरह से लिंक्डइन मणि इसे लेता है। इस प्रकार के आउटपुट में सरणी को कैसे प्रारूपित किया जा सकता है इस पर कोई विचार? – AnApprentice

उत्तर

11

{:id => "x1", :id => "x2", :id => "adad" } एक वैध हैश जब से तुम एक महत्वपूर्ण टक्कर नहीं है

यह तरह दिखना चाहिए:

{ 
    "ids": ["x1", "x2", "x3"] 
} 

अद्यतन:

@a = ["x1", "x2", "adad"] 
@b = @a.map { |e| {:id => e} } 

तो फिर तुम क्या कर सकते हैं b.to_json, मानते हुए कि आपनेकिया हैपहले से ही

+0

यह शायद सच है लेकिन इस तरह लिंक्डइन मणि इसे लेता है। इस प्रकार के आउटपुट में सरणी को कैसे प्रारूपित किया जा सकता है इस पर कोई विचार? – AnApprentice

+0

क्या आप एक उदाहरण प्रदान कर सकते हैं? – Zepplock

+0

निश्चित बात, किस तरह का उदाहरण? लिंक्डइन मणि JSON या उनके डॉक्स की – AnApprentice

1

खैर आमतौर पर आप कुछ इस तरह कर सकता है:

Hash[@array.collect{|i| [:id, i]}] 

लेकिन उस में परिणाम होगा {: आईडी => "ADAD"} क्योंकि पहला तत्व सभी बाकी पंच होगा: माणिक में हैश है अद्वितीय कुंजी तो मुझे नहीं लगता कि यह ऑफहेड करने के लिए एक शानदार शानदार तरीका है।

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