jQuery를 사용하여 배열 구성원과 함께 복잡한 객체를 게시하는 유스 케이스가 있습니다. 예 :디버그 ServiceStack POST 요청 deserialization
data: {
obj1: obj1,
arr1: [ ... ]
}
서버에서는 ServiceStack 서비스를 구현했습니다. 서버의 자동 요청 매핑은 요청 멤버에 대해 null을 생성하지만 Request.GetRawBody()를 추출한 다음 ServiceStack.Text.JsonSerializer.DeserializeFromString을 사용하면 필요한 결과를 얻습니다.
실제 비 직렬화를 디버그하고 누락 된 부분을 확인하는 것이 유용합니다. 누구든지이 작업을 수행하는 방법을 알고 있습니까?
예 : 몇 필드 간단한 요청 객체를 정의 평평한 물체에
패스 :
$.ajax({
//...
data: {
name: 'John Doe'
}
});
:
public class Request
{
public string Name { get; set; }
}
는 jQuery를 아약스 전화 걸기 호출이 작동하면 서버는 "John Doe" 이름 속성 아동 객체
패스 객체
public class Request
{
public Caller Caller { get; set; }
}
public class Caller
{
public string Name { get; set; }
}
그런 다음 jQuery를에서 전화하기 : 전화 후
$.ajax({
// ...
data: {
caller: {
name: 'John Doe'
}
}
});
을, 서비스에 대한 요청의 "발신자"속성은 " null "이므로이 접근 방식이 작동하지 않습니다.
결론 필자는 원래의 평가에서 객체와 배열 조합을 언급하고있었습니다. 문제는 직렬화/비 직렬화하는 간단한 하위 개체를 얻는 것입니다. 개념이 지원되지 않는다는 의미입니까, 아니면 객체를 잘못 전달 했습니까?
응답 해 주셔서 감사합니다. 나는 실제로 뭔가 잘못되었다고 생각하지 않는다. 나는 틀린 일을하고 있다고 확신한다. deserialization에 문제가 있다고 생각하지 않습니다. 단순히 몸체를 deserialize 할 때 작동합니다. 내가 알아 내려고하는 것은 개체가 servicestack에 의해 요청 개체에 매핑 될 때와 본문이 수동으로 deserialize 될 때 달라지는 점입니다. 희망은 그 말이 맞습니다. 그렇지 않은 경우 코드 샘플을 제공 할 수 있습니다. – user975060
특정 코드 예제를 제공하면 도움이 될 것이라고 생각합니다. 앞으로 다른 사람들에게 도움이 될 것입니다. – kampsj
원본 항목을 업데이트했습니다. 잠시 시간을내어 죄송합니다. – user975060