>  기사  >  웹 프론트엔드  >  JavaScript에서 일반 JSON 개체를 클래스 인스턴스로 변환하는 방법은 무엇입니까?

JavaScript에서 일반 JSON 개체를 클래스 인스턴스로 변환하는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-10-18 12:25:30606검색

How to Convert Plain JSON Objects into Class Instances in JavaScript?

JavaScript에서 일반 객체를 클래스 인스턴스로 캐스팅

JavaScript에서 JSON 응답으로 서버로부터 일반 객체를 수신할 때 다음과 같은 문제가 발생할 수 있습니다. 형식화된 클래스 인스턴스로 캐스팅해야 합니다. 이를 통해 클래스별 메서드 및 속성에 액세스할 수 있습니다.

해결책:

한 가지 접근 방식은 인스턴스와 유사한 모든 개체를 허용하고 이를 복제하는 생성자를 만드는 것입니다. 또는 객체를 인스턴스로 변환하는 정적 메서드를 구현할 수 있습니다.

<code class="javascript">Person.fromJSON = function(obj) {
    // Custom code to create an instance from the object
    return ...;
};</code>

공용 속성이 있는 일반 객체가 있는 특정 시나리오의 경우 다음 메서드를 사용할 수 있습니다.

<code class="javascript">var personInstance = new Person();
for (var prop in personLiteral) {
    personInstance[prop] = personLiteral[prop];
}</code>

이렇게 하면 일반 객체의 모든 속성이 새로 생성된 인스턴스에 할당됩니다. 마찬가지로 Animal 인스턴스를 생성할 수도 있습니다.

참고:

  • JSON은 클래스 정보를 제공하지 않으므로 객체 구조를 미리 알고 있어야 합니다.
  • run 메소드를 각 인스턴스에 유지하는 것보다 Animal.prototype 객체로 이동하는 것이 좋습니다.

샘플 코드:

<code class="javascript">var persons = JSON.parse(serverResponse);
for (var i = 0; i < persons.length; i++) {
    persons[i] = Object.assign(new Person(), persons[i]); // Use Object.assign for browsers that support it
    for (var j = 0; j < persons[i].animals; j++) {
        persons[i].animals[j] = Object.assign(new Animal(), persons[i].animals[j]);
    }
}</code>

이 코드를 사용하면 person[0].Animals[2].Run();과 같은 클래스별 메서드를 사용할 수 있습니다.

위 내용은 JavaScript에서 일반 JSON 개체를 클래스 인스턴스로 변환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.