2016-07-31 11 views
10

में JSON स्ट्रिंग का विश्लेषण कैसे करें टाइपस्क्रिप्ट में JSON के रूप में तारों को पार्स करने का कोई तरीका है।
उदाहरण: जेएस में, हम JSON.parse() का उपयोग कर सकते हैं। क्या टाइपस्क्रिप्ट में एक समान कार्य है?टाइपस्क्रिप्ट

मैं इस प्रकार एक JSON ऑब्जेक्ट स्ट्रिंग है:

'{"name": "Bob", "error": false}'

+0

क्या आप अभी 'JSON.parse() 'का उपयोग नहीं कर सकते? – nnnnnn

+1

अपने मुखपृष्ठ पर, यह कहता है कि "टाइपस्क्रिप्ट जावास्क्रिप्ट का एक टाइप किया गया सुपरसेट है जो सादे जावास्क्रिप्ट को संकलित करता है"। JSON.parse() फ़ंक्शन सामान्य की तरह प्रयोग योग्य होना चाहिए। – sigalor

+0

मैं एटम टेक्स्ट एडिटर का उपयोग कर रहा हूं और जब मैं JSON.parse करता हूं, तो मुझे त्रुटि मिलती है: प्रकार '{}' का तर्क 'स्ट्रिंग' प्रकार के पैरामीटर के लिए असाइन करने योग्य नहीं है – ssd20072

उत्तर

39

टाइपप्रति (का सुपरसेट) जावास्क्रिप्ट है, तो आप बस के रूप में आप जावास्क्रिप्ट में होगा JSON.parse का उपयोग करें:

let obj = JSON.parse(jsonString); 

केवल कि में टाइपस्क्रिप्ट आपके पास परिणामी ऑब्जेक्ट के लिए एक प्रकार हो सकता है:

interface MyObj { 
    myString: string; 
    myNumber: number; 
} 

let obj: MyObj = JSON.parse('{ "myString": "string", "myNumber": 4 }'); 
console.log(obj.myString); 
console.log(obj.myNumber); 

(code in playground)

+0

यह सत्यापित करने के लिए कि इनपुट मान्य है (टाइप-चेकिंग, टाइपस्क्रिप्ट के उद्देश्यों में से एक)? इनपुट '' {"myString" को बदलना: "स्ट्रिंग", "myNumber": 4} ''by' '{" myString ":" string "," myNumberBAD ": 4}' 'विफल नहीं होगा, और obj.myNumber अपरिभाषित वापस आ जाएगा। –

+0

@DavidPortabella आप स्ट्रिंग की सामग्री पर टाइप-चेकिंग नहीं कर सकते हैं। यह एक रनटाइम मुद्दा है, और प्रकार की जांच संकलन समय –

+0

ठीक है। मैं कैसे सत्यापित कर सकता हूं कि एक टाइपस्क्रिप्ट ओबीजे रनटाइम पर अपने इंटरफ़ेस को संतुष्ट करता है? यही है, कि इस उदाहरण में myNumber अपरिभाषित नहीं है। उदाहरण के लिए, स्कैला प्ले में, आप 'Json.parse (टेक्स्ट) का उपयोग करेंगे। वैध [MyObj] '। https://www.playframework.com/documentation/2.6.x/ScalaJson आप टाइपस्क्रिप्ट में ऐसा कैसे कर सकते हैं (शायद ऐसा करने के लिए बाहरी पुस्तकालय है?)? –