У меня есть жестко заданные классы для представления моделей в моем приложении Aurelia. Вот модель «PostEdit»:Преобразование класса ES6 с символами в JSON
var _postID = Symbol();
var _title = Symbol();
var _text = Symbol();
export class PostEdit {
constructor(postEdit) {
this[_postID] = postEdit.postID;
this.title = postEdit.title;
this.text= postEdit.text;
}
get postID() { return this[_postID]; }
get title() { return this[_title]; }
set title(val) { this[_title] = val; }
get text() { return this[_text]; }
set text(val) { this[_text] = val; }
}
После того, как объект манипуляций, мне нужно PUT
и POST
его обратно на сервер. Но это похоже на Aurelia
HttpClient
сбрасывает JSON
строку ({}
). При взгляде на него, кажется, что Symbols
игнорируются при преобразовании класса ES6 в JSON
.
Как я могу получить все свои свойства в строку JSON
, чтобы отправить обратно на сервер?
Что вы ждете, чтобы они выглядели, как в представлении JSON? Свойства объекта JSON выглядят как '" name ":" value "', но какое имя будет использоваться для символа 'Symbol'? – Barmar
См. Www.json.org для типов значений, которые могут быть представлены в JSON. Вероятно, вам нужно предоставить метод 'toJSON' в вашем классе, чтобы вернуть желаемое представление. – Barmar
@ Barmar в конце мне нужно '{" postID ":" 1 "...}'. Думаю, я надеялся на какой-то встроенный способ сделать это. – Jonesopolis