嵌套对象反序列化到TypeScript类



我有一个类,例如,我们说Car具有以下结构:

@Serializable()
export default class Car {
@JsonProperty({
name: 'id'
})
private id!: string;
@JsonProperty({
name: 'name'
})
private name!: string;
@JsonProperty({
name: 'carOwner'
})
private carOwner!: Owner;
}

进一步我有Owner类。

@Serializable()
export default class Owner{
@JsonProperty({
name: 'id'
})
private id!: string;
@JsonProperty({
name: 'name'
})
private name!: string;
@JsonProperty({
name: 'address'
})
private address!: string;
}

我有一个传入JSON对象,结构如下,我们叫它newCar

{
"id": "test-id",
"name": "test-car",
"carOwner": {
"id": "owner-id",
"name": "owner-name",
"address": "owner-address",
"gender": "owner-gender",
"age": "owner-age",
}
}

我想做的是,将newCarJSON反序列化到Car类。这就是当我反序列化newJson时,我应该得到下面的对象,其中genderage被过滤掉了。

{
"id": "test-id",
"name": "test-car",
"carOwner": {
"id": "owner-id",
"name": "owner-name",
"address": "owner-address"
}
}

但是现在我得到的是原来的newJson。我正在使用的库(typescript-json-serializer)似乎没有反序列化嵌套对象,这里是owner

如有任何意见,不胜感激。

这是到typescript-json-serializer包的链接

找到解决方案了。显然,我错过了在JsonProperty()中添加一个参数。在Car类中,对于carOwner对象,我必须传递所有者的类型。

@JsonProperty({
name: 'carOwner',
type: Owner,
})

以上解决了我所面临的问题。

最新更新