Подтвердить что ты не робот

Превратить объект typescript в строку json

Я пытаюсь инициализировать объект в typescript, который требует строку JSON для параметра "options". Если быть точным, это объект здесь. Параметр options должен быть строкой JSON, а не объектом для инициализации dijit.

Есть ли способ создать строку JSON из объекта typescript без ручного процесса?

Пожалуйста, не связывайте никаких вопросов, которые конкретно не говорят "TypeScript", поскольку этот вопрос конкретно относится к TypeScript. В то время как производная от JavaScript способ, которым вы пишете код, отличается, и поэтому это единственное сообщение, задающее этот вопрос в настоящее время, относящийся к TypeScript.

4b9b3361

Ответ 1

Просто используйте JSON.stringify(object). Он встроен в Javascript и поэтому может также использоваться в Typescript.

Ответ 2

Вы можете использовать стандартный объект JSON, доступный в Javascript:

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

Ответ 3

TS компилируется в JS, который затем выполняется. Поэтому у вас есть доступ ко всем объектам во время выполнения JS. Одним из таких объектов является объект JSON. Это содержит следующие методы:

  • Метод JSON.parse() анализирует строку JSON, создавая значение JavaScript или объект, описываемый строкой.
  • Метод JSON.stringify() преобразует объект или значение JavaScript в строку JSON.

Пример:

const jsonString = '{"employee":{ "name":"John", "age":30, "city":"New York" }}';


const JSobj = JSON.parse(jsonString);

console.log(JSobj);
console.log(typeof JSobj);

const JSON_string = JSON.stringify(JSobj);

console.log(JSON_string);
console.log(typeof JSON_string);

Ответ 4

Будьте осторожны при использовании этих методов JSON. (Parse/stringify). Я сделал то же самое со сложными объектами, и оказалось, что встроенный массив с еще несколькими объектами имел те же значения для всех других объектов в дереве объектов, которое я сериализировал.

const temp = [];
const t = {
    name: "name",
    etc: [
        {
            a: 0,
        },
    ],
};
for (let i = 0; i < 3; i++) {
    const bla = Object.assign({}, t);
    bla.name = bla.name + i;
    bla.etc[0].a = i;
    temp.push(bla);
}

console.log(JSON.stringify(temp));