2016-02-12 12 views
12

Próbuję zainicjować obiekt w maszynopisie, który wymaga ciągu JSON dla parametru "options". A dokładniej jest to obiekt here. Parametr options jest wymagany, aby był ciągiem JSON, a nie obiektem inicjującym dijit.Włącz obiekt maszynopisu do łańcucha json

Czy istnieje sposób na utworzenie ciągu JSON z obiektu maszynopisowego, który nie jest procesem ręcznym?

Proszę NIE łączyć żadnych pytań, które nie mówią konkretnie "TypeScript", ponieważ to pytanie w sposób szczególny odnosi się do TypeScript. Chociaż pochodna JavaScriptu, sposób pisania kodu jest inny i dlatego jest to jedyny post zadający to pytanie obecnie związane z TypeScript.

+1

Czy na pewno potrzebny jest ciąg JSON? Wygląda na to, że po prostu bierze obiekt. Ale możesz przekonwertować dowolny obiekt (zakładając, że nie ma cykli) do JSON, używając ['JSON.stringify'] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify) –

+0

Dzięki Mike, oddam go jako obiekt, ale nie zmieniaj tego pytania, ponieważ może być użyteczny dla kogoś innego (lub mnie) w przyszłości :) – user1567453

+0

Możliwy duplikat [Stringify obiektu JavaScript] (http://stackoverflow.com/questions/18383854/stringify-javascript-object) – toskv

Odpowiedz

32

Po prostu użyj JSON.stringify (object). Jest wbudowany w JavaScript i dlatego można go używać również w maszynie Typescript.

+0

Prawdopodobnie wybiorę ten jako odpowiedź, ponieważ wyjaśnia, dlaczego mogę używać JSON.stringify w maszynie do pisania. Nie można zaakceptować przed 8 minutami XD zobaczy, co wyskoczy. – user1567453

+1

Po prawidłowym zdefiniowaniu obiektów zgodnie z poniższą instrukcją, to przyzwyczajenie się, ponieważ wszystkie klucze będą używać prywatnych nazw zmiennych (jeśli z członkami prywatnymi używane jest podkreślenie) https://www.typescriptlang.org/docs/handbook/classes. html # public-private-and-protected-modifiers –

+0

@ N15M0_jk Tak, też to zauważyłem. Używam JSON.stringify (obj) .replace (/ "_/g, '"'), aby rozwiązać ten problem. – HammerNL

4

Można użyć standardowego obiektu JSON, dostępna w javascript:

var a: any = {}; 
a.x = 10; 
a.y='hello'; 
var jsonString = JSON.stringify(a);