객체가 있다고 가정 해 보겠습니다.
class Person{
id: number;
name: string;
}
API의 Json :
{
"id": "10",
"name": "Person Name",
"email": "[email protected]"
}
JSON에서 Person 객체로 변환하는 방법은 Person 클래스에있는 변수입니까?
나는 이것을 시도했다 :
Object.assign(Person.prototype, this.jsonList))
하지만 나는 일하지 않는다
클래스에서 선언 된 속성에 대한 정보는 "메타 데이터"이며 직접 액세스 할 수 없습니다. 따라서 명시 적으로 열거하는 것 외에 추가 원치 않는 속성을 포함 할 수있는 일부 입력에서 클래스에있는 속성 만 복사하는 간단한 방법은 없습니다.
자바 스크립트 / 타이프 라이터의 기능 수행 과 같은 메타 데이터에 액세스 할 수는 장식 . 따라서 일반화 된 방식으로 문제를 해결하려면 이러한 데코레이터가 필요합니다. 데코레이터는 클래스에 실제로 존재하는 속성 만 복사하는 정적 메서드를 생성 할 수 있습니다. 다음과 같이 보일 것입니다.
@ConstructFromJsonWithExtraGarbage()
class Person {
}
const sally = Person.constructWithExtraGarbage(
{id: 1, name: "Sally", email: "[email protected]"});
실제로이 데코레이터를 작성하는 것은이 답변의 범위를 벗어납니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다