2012-07-12 3 views
0

내가 반환하는 MVC 컨트롤러가 함께 JsonResult를 역 직렬화하는 방법 :DataContractJsonSerializer

public JsonResult ValidateUser(string siteId, string userName, string password) 
{ 
      UserObj userObj = new UserObj(); 
      userObj.Name = userName; 
      return Json(JsonConvert.SerializeObject(userObj), JsonRequestBehavior.AllowGet); 
} 

를 다음 클라이언트에를 내가 가진 :

MemoryStream ms = new MemoryStream(); 
stream.Copy(ms); 
var text = Encoding.Default.GetString(ms.ToArray()); 

그들은 출력 텍스트입니다 : "{\"이름 \ " : \ "Peter \"} "

Name 값이 deserialize 될 때 null입니다.

DataContractJsonSerializer obj = new DataContractJsonSerializer(typeof(UserObj)); 
var resultUser = obj.ReadObject(stream) as UserObj; 

문제점은 백 슬래시에있는 것으로 나타났습니다. 작동 방법에 대한 단서가 있습니까?

감사

+1

두 번 직렬화 할 필요가 없습니다! –

답변

2

교체 :

return Json(JsonConvert.SerializeObject(userObj), JsonRequestBehavior.AllowGet); 

로 :

return Json(userObj, JsonRequestBehavior.AllowGet); 
+0

고마워 ... !! 너는 완전히 옳다. 나는 바보이다.) : .- .-. 대린 감사합니다. – VAAA

+0

작동 시키려고 했습니까? 다른 질문이 있으십니까? 아니면이 대화 목록을 닫으시겠습니까? –

+0

모든 것이 완벽합니다! Darin 감사합니다. Accepted Check Mark를 클릭하기 만하면됩니다. :) 다시 한번 감사드립니다! – VAAA

관련 문제