【发布时间】:2021-04-19 10:43:07
【问题描述】:
我正在尝试使用库“class-transformer”将 json 主体解析为 JavaScript 对象,但他无法识别我的子对象。
这是json文件:
{
"shops": [{
"shopId": 1,
"name": "La piscine Marius-Leclercq",
"address": "99 Avenue Barbusse, 62440 Harnes",
"description": "La piscine Marius-Leclercq est située en plein centre de la ville dans la rue Barbusse. Différentes spécialités sportives y sont proposées. Un bassin de 25 mètres de long vous accueille du lundi au dimanche ainsi qu’un petit bain pour les activités comme l’aquagym, l’aquadouce ou le jardin aquatique.",
"email": "piscinemariusleclercq@contact.fr",
"phone": "03 21 13 96 00",
"localisation": {
"lat": 50.450157165527344,
"long": 2.898190498352051
},
"vidoLink": "https://www.youtube.com/watch?v=rqDEgCBYMxA&ab_channel=AvallonVision",
"pictures": [{
"idPicture": 1,
"link": "https://zupimages.net/up/21/02/cpri.jpg"
},
{
"idPicture": 2,
"link": "https://zupimages.net/up/21/02/3mkk.jpg"
}
],
"openShop": [{
"dayWeek": "Monday",
"hourStart": "12:00:00",
"endHour": "13:00:00"
},
{
"dayWeek": "Monday",
"hourStart": "16:15:00",
"endHour": "19:00:00"
},
{
"dayWeek": "Tuesday",
"hourStart": "16:15:00",
"endHour": "19:00:00"
},
{
"dayWeek": "Thursday",
"hourStart": "10:00:00",
"endHour": "13:30:00"
},
{
"dayWeek": "Thursday",
"hourStart": "14:00:00",
"endHour": "19:15:00"
},
{
"dayWeek": "Saturday",
"hourStart": "10:00:00",
"endHour": "12:00:00"
},
{
"dayWeek": "Saturday",
"hourStart": "14:00:00",
"endHour": "17:00:00"
},
{
"dayWeek": "Sunday",
"hourStart": "8:00:00",
"endHour": "12:00:00"
}
]
},
{
"shopId": 2,
"name": "Climb up",
"address": "Plaine sportive, 110 Rue Jean Jaurès, 59810 Lesquin",
"description": "Depuis plus de 15 ans nous cultivons la diversité au sein de nos structures. Diversité de profils, de visions et de sensibilités. Nos nombreux échanges ont ainsi donné jour à un concept de salles d’escalade pensées comme des lieux de vie ouverts à tous.",
"email": "climbup@contact.fr",
"phone": "03 20 07 57 42",
"localisation": {
"lat": 50.5865602,
"long": 3.1071495
},
"vidoLink": "https://www.youtube.com/watch?v=3-3a9GghAR0&ab_channel=ClimbUp",
"pictures": [{
"idPicture": 3,
"link": "https://zupimages.net/up/21/02/z8st.jpg"
},
{
"idPicture": 4,
"link": "https://zupimages.net/up/21/02/6yh3.jpg"
}
],
"openShop": [{
"dayWeek": "Monday",
"hourStart": "8:00:00",
"endHour": "23:00:00"
},
{
"dayWeek": "Tuesday",
"hourStart": "8:00:00",
"endHour": "23:00:00"
},
{
"dayWeek": "Wednesday",
"hourStart": "8:00:00",
"endHour": "23:00:00"
},
{
"dayWeek": "Thursday",
"hourStart": "8:00:00",
"endHour": "23:00:00"
},
{
"dayWeek": "Friday",
"hourStart": "8:00:00",
"endHour": "23:00:00"
},
{
"dayWeek": "Saturday",
"hourStart": "10:00:00",
"endHour": "23:00:00"
},
{
"dayWeek": "Sunday",
"hourStart": "8:00:00",
"endHour": "12:00:00"
}
]
}
]
}
有我的 DTO:
export class ShopEntity {
shops : ShopDto[];
}
export class ShopDto {
@Expose({
name: 'shopId'
})
id: number;
name: string;
address: string;
description: string;
email: string;
phone: string;
localisation: {
lat: number;
long: number;
}
videoLink: string;
offers: OfferDto[];
pictures: PictureDto[];
openShop: OpenShopDto[];
}
这是我的代码行:
let shopsTab = plainToClass(ShopEntity, body);
我成功从 ShopEntity 获取了我的第一个对象,但标签商店未定义。
【问题讨论】:
-
什么是“身体”?可以分享一下服务和控制器方法吗
标签: javascript nestjs class-transformer