Я пытаюсь сделать так, чтобы класс Post содержал такие атрибуты сообщения, как "id, title, content... и т. д.
Я хочу инициализировать класс из ответа JSON. Я использую angular-http для получения JSON в машинописном тексте.
в APP.TS:
class AppComponent {
result: { [key: string]: string; };
map: Map<Object,Object>;
constructor(http: Http) {
http.get('http://localhost/wptest/wp-json/wp/v2/posts').subscribe(res => {
this.result = <any>res.json();
this.map = <any>res.json();
console.log(this.result);
console.log(this.map);
});
}
}
примечание: я все еще не понимаю, какой тип подходит для моего JSON. Я читал, что typescript еще не поддерживает Map, однако здесь он работает как result: {[key:string]: string; };
Я попытался найти в stackoverflow, я нашел этот вопрос как преобразовать объект json в машинописный текст, ответ не имеет ничего общего с машинописным текстом.
в другом вопросе Можно ли создать тип TypeScript и использовать его, когда AJAX возвращает данные JSON?
ответ говорит о создании интерфейсов в машинописном тексте. (чего я не совсем понял).
Я также нашел этот сайт для json2ts, генерирующего машинописные интерфейсы из JSON, поэтому я попробовал свой json и получил следующее:
declare module namespace {
export interface Guid {
rendered: string;
}
export interface Title {
rendered: string;
}
export interface Content {
rendered: string;
}
export interface Excerpt {
rendered: string;
}
export interface Self {
href: string;
}
export interface Collection {
href: string;
}
export interface Author {
embeddable: boolean;
href: string;
}
export interface Reply {
embeddable: boolean;
href: string;
}
export interface VersionHistory {
href: string;
}
export interface Links {
self: Self[];
collection: Collection[];
author: Author[];
replies: Reply[];
}
export interface RootObject {
id: number;
date: Date;
guid: Guid;
modified: Date;
modified_gmt: Date;
slug: string;
type: string;
link: string;
title: Title;
content: Content;
excerpt: Excerpt;
author: number;
featured_image: number;
comment_status: string;
ping_status: string;
sticky: boolean;
format: string;
_links: Links;
}
}
Теперь у меня есть машинописный интерфейс для моего JSON, но я не знаю, что делать дальше!
Вопрос. Является ли это правильным способом преобразования JSON в объект класса в машинописном тексте? если да, то каков следующий шаг, чтобы инициализировать класс данными?