솔직히 말해서이 질문으로 어디서부터 시작해야할지 모르겠습니다. 상황을 설명하겠습니다. HTML5 게임의 수준 편집기를 만드는 중입니다. 수준 편집기는 이미 작동합니다. 이제이 편집기로 만든 수준을 저장 /로드하고 싶습니다.Javascript : 효율적/올바르게 un-jsonify하는 방법
이 모든 것이 자바 스크립트 (레벨 편집기뿐만 아니라 게임)에서 수행 되었기 때문에 저의 레벨을 JSON과로드로 간단히 변환하는 것이 좋습니다. un-jsonify.
문제는 레벨에 여러 유형의 개체 (여러 가지 유형의 개체, 여러 유형의 애니메이션 개체 등)가 포함되어 있습니다. 지금 당장 게임에 개체를 추가하려고 할 때마다 해당 객체에 대해 특별히 unjsonify 메소드를 작성한 다음 레벨 객체의 unjsonify 메소드를 수정하여 새로 정의 된 객체 유형을 unjsonifying 처리 할 수 있도록하십시오.
단순히 JSON.parse를 사용할 수 없습니다. JSON.parse는 원본과 동일한 키와 값을 가진 객체를 반환하기 때문에 실제로는 해당 클래스/프로토 타입의 객체가 아니기 때문에 JSON.parse를 사용할 수 없습니다. 내 질문은 그렇다면 게임에 새로운 유형의 객체를 추가 할 때마다 코드를 지속적으로 수정하지 않아도되는 올바른 방법이 있습니까?
감사합니다. 이것은 나를 위해 일했다. 그래도 궁금해서 ... 이걸 어느 정도 자동화하는 방법을 생각해 볼 수 있니? 예를 들어, 생성자 함수에 유형을 매핑 한 다음지도를 사용하는 일반 serialize/deserialize 함수를 사용할 수 있습니다 (각 객체에 대해 별도의 serialize/deserialize를 작성하지 않아도됩니까?) – tborenst
@Xaan 그렇습니다. 일부 유형의 객체에 대한 자동 직렬화 메소드. 객체 속성을 반복 할 수 있고 hasOwnProperty를 사용하여 어떤 객체를 저장해야 하는지를 결정할 수 있지만 순환 참조 나 다른 문제를 처리해야하기 때문에 적용 할 수있는 위치를 생각해야합니다. 간단한 개체의 경우에는 괜찮을 것입니다. – andrewmu