2016-02-12 7 views
12

Sto provando a inizializzare un oggetto in dattiloscritto che richiede una stringa JSON per il parametro "opzioni". Per essere precisi è l'oggetto here. Il parametro options deve essere una stringa JSON e non un oggetto per inizializzare il dijit.trasformare l'oggetto dattiloscritto in stringa json

C'è un modo per creare una stringa JSON da un oggetto dattiloscritto senza che si tratti di un processo manuale?

Si prega di NON collegare alcuna domanda che non specifichi specificamente "TypeScript" in quanto questa domanda riguarda specificamente TypeScript. Mentre un derivato di JavaScript il modo in cui scrivi il codice è diverso e quindi questo è l'unico post che fa questa domanda attualmente relativa a TypeScript.

+1

Sei certo bisogno di una stringa JSON? Sembra che prende solo un oggetto. Ma puoi convertire qualsiasi oggetto (supponendo che non abbia cicli) in JSON usando ['JSON.stringify'] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify) –

+0

Grazie Mike, lo farò come oggetto ma mantengo la domanda a prescindere dal momento che potrebbe essere utile a qualcun altro (o ancora a me) in futuro :) – user1567453

+0

Possibile duplicato di [Stringify JavaScript object] (http://stackoverflow.com/questions/18383854/stringify-javascript-object) – toskv

risposta

32

Basta usare JSON.stringify (oggetto). È incorporato in Javascript e può quindi essere utilizzato anche in Typescript.

+0

Probabilmente sceglierà questa come risposta poiché spiega perché posso usare JSON.stringify in Typescript. Non posso accettare prima di 8 minuti XD vedrà cosa si apre. – user1567453

+1

Con le definizioni di oggetto corrette seguendo la seguente guida, questo non funzionerà perché tutte le chiavi useranno i nomi delle variabili private (se un trattino basso viene usato con i membri privati) https://www.typescriptlang.org/docs/handbook/classes. html # modificatori public-private-and-protected –

+0

@ N15M0_jk Sì, l'ho notato anche io. Sto usando JSON.stringify (obj) .replace (/ "_/g, '"') per superare questo problema. – HammerNL

4

È possibile utilizzare l'oggetto standard JSON, disponibili in Javascript:

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