如何从 json 转换为 angular class
how to convert from json to angular class
我在 angular
中有一本名为 class 的书
export class Book
{
name: String;
auther: String;
series: String;
price: Number;
publishDate: Date;
ISBN: Number;
promise: String;
active: boolean;
}
并使用 httpClient 从服务器获取图书数据(json 格式),就像这样
this.http.get(this.booksUrl)
.subscribe(res => console.log(res));
我想从 json 转换成书本 class,有相应的软件包吗?
如果我如何从 json 对象
中提取数据
更新:
这是我得到的json数据
ISBN:"req.body.ISBN"
author:"req.body.author"
created_at:"2018-08-06T11:53:07.532Z"
name:"a"
photo:""
publishDate:"2018-08-06T11:53:07.532Z"
sellDate:"2018-08-06T11:53:07.532Z"
seller:"req.body.seller"
seriesName:"4"
summary:"req.body.summary"
updated_at:"2018-08-06T11:53:17.629Z"
__v:0
_id:"5b6836aa5d6e0a2c481fbd04"
您可以使用一个简单的构造函数来接收这样的对象:
export class Book
{
name: String;
auther: String;
series: String;
price: Number;
publishDate: Date;
ISBN: Number;
promise: String;
active: boolean;
constructor(obj: any) {
this.name = obj.name;
this.auther = obj.auther;
this.publishDate = new Date(obj.publishDate);
}
}
然后像这样更新您的请求:
this.http.get(this.booksUrl)
.subscribe(res => new Book(res));
显然我认为您会将新创建的 Book 与一个实例相关联,例如:
book: Book;
this.http.get(this.booksUrl)
.subscribe(res => {
this.book = new Book(res)
});
最后我用了这段代码
getBookList() {
return this.http.get<Book[]>(this.bookUrl + '/list')
.subscribe(bookRes => this.books = bookRes);
}
自从我在 json 中得到响应后,此转换能够将任何同名对象从 json 转换为 Book。
例如,我在书中有一个作者变量,只要它在 json 文档和书中 class 中的名称相同,它就可以转换它,但如果在我的 class 中我将此变量称为 "BooksAuthor",因为它与 json 文档的名称不同,我将无法转换它
我在 angular
中有一本名为 class 的书export class Book
{
name: String;
auther: String;
series: String;
price: Number;
publishDate: Date;
ISBN: Number;
promise: String;
active: boolean;
}
并使用 httpClient 从服务器获取图书数据(json 格式),就像这样
this.http.get(this.booksUrl)
.subscribe(res => console.log(res));
我想从 json 转换成书本 class,有相应的软件包吗? 如果我如何从 json 对象
中提取数据更新: 这是我得到的json数据
ISBN:"req.body.ISBN"
author:"req.body.author"
created_at:"2018-08-06T11:53:07.532Z"
name:"a"
photo:""
publishDate:"2018-08-06T11:53:07.532Z"
sellDate:"2018-08-06T11:53:07.532Z"
seller:"req.body.seller"
seriesName:"4"
summary:"req.body.summary"
updated_at:"2018-08-06T11:53:17.629Z"
__v:0
_id:"5b6836aa5d6e0a2c481fbd04"
您可以使用一个简单的构造函数来接收这样的对象:
export class Book
{
name: String;
auther: String;
series: String;
price: Number;
publishDate: Date;
ISBN: Number;
promise: String;
active: boolean;
constructor(obj: any) {
this.name = obj.name;
this.auther = obj.auther;
this.publishDate = new Date(obj.publishDate);
}
}
然后像这样更新您的请求:
this.http.get(this.booksUrl)
.subscribe(res => new Book(res));
显然我认为您会将新创建的 Book 与一个实例相关联,例如:
book: Book;
this.http.get(this.booksUrl)
.subscribe(res => {
this.book = new Book(res)
});
最后我用了这段代码
getBookList() {
return this.http.get<Book[]>(this.bookUrl + '/list')
.subscribe(bookRes => this.books = bookRes);
}
自从我在 json 中得到响应后,此转换能够将任何同名对象从 json 转换为 Book。 例如,我在书中有一个作者变量,只要它在 json 文档和书中 class 中的名称相同,它就可以转换它,但如果在我的 class 中我将此变量称为 "BooksAuthor",因为它与 json 文档的名称不同,我将无法转换它