2012-04-23 9 views
6

से स्ट्रिंगिफ़ाई क्या निम्न क्लाउड की तुलना में जावास्क्रिप्ट ऑब्जेक्ट का JSON प्रतिनिधित्व प्राप्त करने का एक क्लीनर तरीका है?एक्सेस राइनो के मूल JSON। जावा

System.out.println(((ScriptableObject) scope).callMethod(
    cx, (Scriptable) scope.get("JSON", scope), 
    "stringify", new Object[]{jsObject})); 

जहां jsObject ScriptableObject है मैं स्ट्रिंग करना चाहता हूं।

उत्तर

11

ध्यान दें कि हैन्स में now addressed राइनो में है। तो उपयोग यह करने के लिए सरल:

import org.mozilla.javascript.NativeJSON; 
// ... 

Object json = NativeJSON.stringify(cx, scope, jsObject, null, null); 

org.mozilla.javascript.NativeJSON वर्ग राइनो 1.7R4 रिलीज में सार्वजनिक किया जाना चाहिए।

+0

नमस्ते आप इस पर एक नजर डालते हैं सका: http://stackoverflow.com/questions/17548552/scriptengine-how-to-pass-a-string-that-represent -json? –

+1

मैं उपरोक्त का उपयोग करना चाहता हूं, लेकिन मैं यह नहीं समझ सकता कि एंट/राइनो/स्क्रिप्ट टैग के भीतर से दायरा कैसे प्राप्त किया जाए। संदर्भ .getCurrentContext() के माध्यम से सुलभ लगता है, लेकिन दायरे के बारे में निश्चित नहीं है। – Joel

0

मैं नेटिव जेसन कक्षा का उपयोग करके अपाचे एंटी लक्ष्य के भीतर काम करने में सक्षम था।

importPackage(org.mozilla.javascript); 

var context = Context.enter(); 
var json = '{}'; 
// The call to parse required a reviver function that should return the 
// state of a key/value pair. 
var reviver = function(key, value) { return value; }; 
var scope = context.initStandardObjects(); 
var object = NativeJSON.parse(context, scope, json, reviver); 

// The call to stringify does not require the replacer or space parameters. 
// The replacer is a function that takes a key/value pair and returns the 
// new value or an array of keys from the input JSON to stringify. The space 
// parameter is the indentation characters or length. 
json = NativeJSON.stringify(context, scope, config, null, 4); 

http://mozilla.github.io/rhino/javadoc/org/mozilla/javascript/NativeJSON.html https://github.com/mozilla/rhino/blob/master/src/org/mozilla/javascript/NativeJSON.java

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