मैं जावास्क्रिप्ट कोड को पार्स करने के लिए जिंट का उपयोग कर रहा हूं, निम्नलिखित जेएस कोड काम करते हैं:

  • 1
  • [1]
  • {}

लेकिन यह विफल रहता है:

{ a: 1}

इस त्रुटि के साथ:

int.Parser.ParserException: पंक्ति 1: अनपेक्षित टोकन: Jint.Parser.JavaScriptParser.ThrowError पर (टोकन टोकन, स्ट्रिंग संदेशफॉर्मेट, ऑब्जेक्ट [] तर्क) Jint.Parser.JavaScriptParser.ThrowUnexpected (टोकन टोकन) पर Jint.Parser.JavaScriptParser.ConsumeSemicolon() पर Jint.Parser.JavaScriptParser.ParseStatement () पर Jint.Parser.JavaScriptParser.ParseStatement () पर Jint.Parser.JavaScriptParser.ParseSourceElement() पर Jint.Parser.JavaScriptParser.ParseStatementList() पर Jint.Parser.JavaScriptParser.ParseBlock () पर Jint.Parser.JavaScriptParser.ParseStatement () पर Jint.Parser.JavaScriptParser.ParseSourceElement() पर Jint.Parser.JavaScriptParser.ParseSourceElements () पर Jint.Parser.JavaScriptParser.ParseProgram () पर Jint.Parser.JavaScriptParser.Parse पर (स्ट्रिंग कोड, ParserOptions विकल्प) Jint.Engine.Execute(String source) . पर

मैं एक JSON फ़ाइल को deserialize नहीं करना चाहता, मैं एक जावास्क्रिप्ट ऑब्जेक्ट निष्पादित करना चाहता हूं, मैं कुछ ऐसा करना चाहता हूं:

{
  id: 'one',
  code: function() { console.log('hello'); }
}

मैंने देखा कि अगर मैं ऐसा करता हूं:

var x = {a: 1}
x

तो यह काम करता है, लेकिन मुझे अपने परिदृश्य में जावास्क्रिप्ट ऑब्जेक्ट होने की आवश्यकता है।

क्या इसको हासिल करने के लिए कोई रास्ता है?

0
Orlando William 10 जुलाई 2017, 18:41
यह शायद इसे किसी वस्तु के शाब्दिक के बजाय एक ब्लॉक के रूप में व्याख्या करता है। इसे कोष्ठक में लपेटने का प्रयास करें, अर्थात ({ a: 1 })
 – 
Lennholm
10 जुलाई 2017, 18:43
यह काम करता है! धन्यवाद!
 – 
Orlando William
10 जुलाई 2017, 18:44
क्या आप अपना उत्तर पोस्ट कर सकते हैं ताकि मैं इसे स्वीकार कर सकूं?
 – 
Orlando William
10 जुलाई 2017, 18:45
ठीक है! मैं इसे एक उचित उत्तर के रूप में जोड़ूंगा ताकि आप इस प्रश्न को हल कर सकें।
 – 
Lennholm
10 जुलाई 2017, 18:45
सुनिश्चित नहीं है कि आप उस प्रारूप को क्यों शुरू करना चाहते हैं क्योंकि आप वास्तव में इसमें विधियों/गुणों का संदर्भ नहीं दे सकते हैं।
 – 
epascarello
10 जुलाई 2017, 18:54

1 उत्तर

सबसे बढ़िया उत्तर

{ a: 1} की व्याख्या किसी ऑब्जेक्ट लिटरल के बजाय ब्लॉक स्टेटमेंट के रूप में की जाती है। समाधान इसे कोष्ठक में लपेटना है:

({ a: 1 })
2
Lennholm 10 जुलाई 2017, 18:46