मैं जावास्क्रिप्ट कोड के अंदर एक डेटा संरचना उत्पन्न करने की कोशिश कर रहा हूं, और जावा से परिणामों को संसाधित करता हूं (जावा 6 या 7 में राइनो)।मैं जावा डेटास्ट्रक्चर में राइनो-निर्मित जेएसओएन डेटास्ट्रक्चर (नेटिव ऑब्जेक्ट) को कैसे परिवर्तित कर सकता हूं?
Object result = invocableEngine.invokeFunction(functionName, parameters);
अब, जे एस तरफ, कि परिणाम एक JSON डेटा संरचना इस प्रकार है::
मैं का उपयोग कर जावा से जे एस समारोह लागू करने में सफल रहा
{
"key1" : { "key1_1" : "value1_1", "key1_2" : 11 },
"key2" : [ { "key2_1": "foo2"
, "key2_1" : "bar2" },
{ "key2_1": "foo2"
, "key2_1" : "bar2"
, "key2_3" : [1,2,3] } ]
}
जावा तरफ, हालांकि, "परिणाम" प्रकार sun.org.mozilla.javascript.internal.NativeObject
का एक ऑब्जेक्ट है जो मुझे उचित जावा डेटास्ट्रक्चरमें परिवर्तित करने का कोई तरीका है, जेएसओएन को स्ट्रिंग में क्रमबद्ध करने के ऊपरी हिस्से के बिना और फिर इसे रोकने के लिए जीसन का उपयोग कर?
इस समय के लिए मान लें कि डेटा संरचना उचित रूप से अच्छी तरह परिभाषित है, उदा। मुझे पता है कि ऑब्जेक्ट हैश "कुंजी 1" और "की 2" के साथ हैश है, कुंजी के साथ हैश के पहले नक्शे "key1_1" और "key1_2"; दूसरे नक्शे हैंश की एक सरणी में, जिनमें से प्रत्येक में "key2_1" और "key2_2" कुंजी हैं जो स्केलर और "key2_3" हैं जो एक सरणी है।
मेरे 2 प्राथमिकताओं इसी क्रम में, कर रहे हैं:
- प्रदर्शन (जो एक कारण है कि मैं serialize + Gson-पार्स से सावधान कर रहा हूँ है) जावा 6, 7 और 8 (हालांकि बीच
- पोर्टेबिलिटी , मैं एक भौतिक रूप से तेजी से गैर पोर्टेबल समाधान पसंद करेंगे)।
वहाँ राइनो प्रारूप में इसे छोड़ने और उस डेटा के माध्यम से उस तक पहुंचने में साथ एक समस्या है संरचना? मैं मानता हूं कि इसमें कुछ ओवरहेड होगा लेकिन मुझे नहीं लगता कि स्ट्रिंग और deserializing में परिवर्तित किए बिना कोई विकल्प हैं। – ghostbust555
@ ghostbust555 - मुझे लगता है कि "राइनो प्रारूप के माध्यम से पहुंचना" एक वैध दृष्टिकोण है, लेकिन यह सुनिश्चित नहीं है कि यह कैसे करें।ऐसा लगता है कि मुझे लगता है कि कोई सभ्य दस्तावेज नहीं है, खासकर हैश – DVK
हुह के लिए। वाह वे सभी समय के सबसे खराब दस्तावेज है। परिणाम का प्रयास करें .getAttributes ("key1")? – ghostbust555