JSON을 사용하는 메소드로 자바스크립트 객체를 어떻게 직렬화합니까?

StackOverflow https://stackoverflow.com/questions/109769

  •  02-07-2019
  •  | 
  •  

문제

메서드를 직렬화하는 JSON의 향상된 기능을 찾고 있습니다.개체 컬렉션 역할을 하는 개체가 있고 컬렉션 개체의 메서드도 직렬화하고 싶습니다.지금까지 내가 찾아본 바로는 고급JSON.이견있는 사람?

도움이 되었습니까?

해결책

나는 직렬화 방법이 결코 좋은 생각이 아니라고 생각합니다.서버 측에서 코드를 실행하려는 경우 공격에 노출됩니다.클라이언트 측에서 실행하려면 직렬화된 개체에서 사용할 메서드의 이름을 참조하여 로컬 메서드를 사용하는 것이 더 좋습니다.

그래도 나는 믿는다 "f = "+function() {} 평가할 수 있는 to string 버전이 제공됩니다.

var test = "f = " + function() { alert("Hello"); };
eval(test)

그리고 좋은 json 처리를 위해서는 객체를 json으로 직렬화하는 훌륭한 방법이 있는 프로토타입을 추천합니다.

다른 팁

자바스크립트 코드를 직렬화하지 않고 벗어나도록 해보세요.그 길은 고통의 세계입니다.코드가 데이터베이스가 아닌 정적 파일에서만 나올 수 있다면 디버깅이 훨씬 쉬워집니다.대신 JSON 응답을 받은 후 해당 데이터를 적절한 개체 생성자에 전달하세요.

반드시 직렬화해야 하는 경우 함수에서 toString()을 호출하면 해당 소스가 반환됩니다.

WCF 프레임워크를 사용하여 RESTful 웹 서비스를 개발하면 매우 쉽게 달성할 수 있습니다.DataContract, DataMember 속성을 사용하여 원하는 컬렉션으로 데이터 구조 클래스를 생성하기만 하면 됩니다.

[DataContract]
public class Foo
{
    [DataMember]
     public string FooName {get;set;}
    [DataMember]
     public FooItem[] FooItems {get;set;}
}


[DataContract]
public class FooItem
{
    [DataMember]
    public string Name {get;set;}
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top