angularjs - Strogi tip podataka za JSON datoteku
Kad dobijem podatke iz json-a, prvo kreiram klasu i definiram sve varijable koje dobijem u json-u za strogi tip podataka kao što je moja json datoteka
{"fname":"Mark","lname":"jhony"}
dakle, u Angularu klase napravim ovako
export class user{
fname: string;
lname : string;
}
Zbunjen sam kako napraviti klasu za sljedeće JSON podatke
{"fname":"Mark","lname":"jhony",
"parcels":[
{
"parcelId":123,
"parcelName :"asd",
"parcelItems:[
{
"itemId":2,
"itemName":"perfume"
},
{
"itemId":4,
"itemName":"soap"
}
]
]}
Pokušao sam dodati niz u klasu, ali ne mogu shvatiti koji bi bio najbolji način da se to obradi u AngularJS-u.
Odgovor #1
Tipično biste koristili sučelje za predstavljanje strukture podataka primitivnih vrijednosti, na primjer:
interface ParcelItem {
itemId: number;
itemName: string;
}
interface Parcel {
parcelId: number;
parcelName: string;
parcelItems: ParcelItem[];
}
interface User {
fname: string;
lname: string;
Parcels: Parcel[];
}
Ovisno o tome kako dobijete JSON i parsirate ga, možete odrediti koju sučelje koristiti. Najjednostavniji primjer bi bio:
const user = JSON.parse(userJson) as User;
Ako želite koristiti klasu možda za povezane metode za manipulaciju podacima, morate instancirati klasu pomoću konstruktora. To bi moglo izgledati ovako:
const userValues = JSON.parse(userJson);
const user = new User(userValues);
Odgovor #2
Ovo bi funkcioniralo.
export interface ParcelItemType {
itemId: number;
itemName: string;
}
export interface ParcelType {
parcelId: number;
parcelName: string;
parcelItems: ParcelItemType[];
}
export interface YourType {
fname: string;
lname: string;
parcels: ParcelType[];
}
