1
다른 클래스의 몇 가지 다른 객체가 포함 된 Javascript 객체의 직렬화 메소드를 찾고 있습니다. 함수 인수가 있습니다.node.js의 다형성 배열의 직렬화
// Paper class:
function Paper(name) {
this.name = name;
}
Paper.prototype = {
string: function() { return "Paper:"+this.name; }
};
// Book class:
function Book(name) {
this.name = name;
}
Book.prototype = {
string: function() { return "Book:"+this.name; }
};
// Library class:
function Library(name) {
this.items = [];
}
Library.prototype = {
add: function(item) { this.items.push(item); },
string: function() {
var titles = this.items.map(function(item) { return item.string(); });
return titles.join(",");
},
};
///// Define a library:
var lib = new Library();
lib.add(new Paper("MyPaper"));
lib.add(new Book("MyBook"));
assert(lib.string() == "Paper:MyPaper,Book:MyBook");
///// Serialize, de-serialize and compare:
// var libString = serialize(lib);
// var newLib = deserialize(libString);
// assert(newLib.string() == "Paper:MyPaper,Book:MyBook");
참고 : 드/직렬화 (적어도 내 경우) 멀리 떨어져있는 컴퓨터에 복잡한 객체를 이동하는 것입니다의 주요 사용 여기
은 간단한 테스트 케이스입니다. 예를 들어, 내 컴퓨터에 큰 라이브러리를 만들고 직렬화하고, 파일을 저장하고, 다른 컴퓨터에 파일을 보내고, 역 직렬화하고, 동일한 라이브러리를 갖고 싶습니다.
이 유망 보이지만,이 작품은 또한 직렬화 된 문자열이 다른 컴퓨터로 이동합니다한다면? 이것은 필자의 경우에 가장 중요한 사용 사례이다. 내 컴퓨터에 큰 라이브러리를 만들고 직렬화하고, 파일을 저장하고, 다른 컴퓨터에 파일을 보내고, 역 직렬화하고, 동일한 라이브러리를 가지고있다. 하지만, 귀하의 제안은 다른 컴퓨터에서 사용할 수없는 전역 변수 "protos"에 의존하는 것 같습니다 ... –
맞습니다. 모든 프로토 타입은 비 직렬화 파티에서 사용할 수 있어야합니다. 그러나 공정하게 나는 이것이 어떻게 문제인지를 볼 수 없다. 어쩌면 내가 다른 해결책을 제시 할 수있는 경우에 대한 자세한 내용을 제공 할 수 있습니다. – vkurchatkin
맞습니다. 내일 더 자세한 예제를 작성하겠습니다. –