2011-08-26 5 views
0

여기 샘플 코드를 첨부합니다. 그들은 JavaScriptSerializer를 사용하여 json 형식의 데이터를 생성하고 클라이언트에 데이터를 다시 보냈습니다.JavaScriptSerializer가 필수 일 때?

GetPersons()가 jquery ajax 함수에 의해 호출되었습니다. 여기에 코드

$.ajax({ 
    type: "POST", 
    url: "Default.aspx/GetPersons", 
    contentType: "application/json; charset=utf-8", 
    data: "{}", 
    dataType: "json", 
    success: AjaxSucceeded, 
    error: AjaxFailed 
}); 

[WebMethod()] 
public static string GetPersons() 
{ 
    List<person> persons = new List<person>() 
    { 
     new Person { UId = 1, Name = "Brij", Address = "Noida"}, 
     new Person { UId = 2, Name = "Rahul", Address = "New Delhi" }, 
     new Person { UId = 3, Name = "John0", Address = "Chris"} 
    }; 

    JavaScriptSerializer ser = new JavaScriptSerializer(); 
    return ser.Serialize(persons); 
} 

메소드가 WebMethod로 장식 된 경우 반환 될 때 자동으로 json 형식으로 데이터가 생성됩니다. 너희들이 자세히 본다면 그러면 List 대신 GetPersons() 문자열을 볼 수있다. 왜 일부는 List 대신 문자열을 반환합니다. 리스트 를 돌려 주었을 경우, json 형식에서 수동으로 데이터를 생성 할 필요는 없습니다. 내가 맞습니까?

그래서 사람들이 JavaScriptSerializer를 사용하여 json 형식으로 데이터를 생성하는 이유를 알아야합니다. 제발 어떤 종류의 상황을 말해봐

JavaScriptSerializer json 형식으로 수동으로 데이터를 생성합니까?

감사합니다.

답변

0

JSON 직렬화는 필수 사항이 아닙니다. 쉼표로 구분 된 값 쌍 목록을 반환 할 수 있습니다. 클라이언트에서 배열 또는 데이터 객체로 되돌리려면 목록을 구문 분석해야한다는 점에서 차이가 있습니다. JSON의 아름다움은 이미 기본 JavaScript 객체입니다.

데이터 구조가 더욱 복잡해지면 더 중요해진다.

+0

두 개의 작은 샘플 코드 하나를 반환하고 ser.Serialize (명)와 같은 반환을하면 더 도움이 될 것입니다. 결과로 내가 무슨 말을하려고했는지 이해할 수 있습니다 .... U는 목록을 클라이언트에 구문 분석하여 배열로 되돌리고 JSON은 네이티브 JavaScript 객체입니다. – Thomas

관련 문제