SS를 보면서 문제가 발생합니다.ServiceStack - DTO의 동적/객체
나는 특히이 사용자 정의 스트라이프 구현을 쓰고 있어요 및 웹 후크에 붙어있어 : https://stripe.com/docs/api#event_object
데이터 -> 개체 -이 아무것도 할 수있다. 여기
은 내 DTO입니다 :에서 반환var invoice = (StripeInvoice)JsonSerializer.DeserializeFromString<StripeInvoice>(request.data._object.ToString());
불행하게도 데이터 :
public class StripeEvent
{
public string id { get; set; }
public StripeEventData data { get; set; }
public string type { get; set; }
}
[DataContract]
public class StripeEventData
{
[DataMember(Name = "object")]
public object _object { get; set; }
}
내 희망은 기본적으로 그냥 문자열로 객체를 얻고, 다음의 구문을 분석하는 것입니다 ToString에는 json 속성의 이름을 둘러싼 따옴표가 없습니다.
그래서 DeserializeFromString은 모든 것이 제거 된 객체를 반환합니다.
SS가 내부적으로 따옴표를 제거하는 이유는 무엇입니까? 이것은 여러 가지 유형 중 하나 일 수있는 JSON 멤버를 처리하는 적절한 방법입니까? 나는 역동적 인 것들을 시도했지만 그 중 하나도 행운이 없었습니다 - 기본적으로 누락 된 따옴표가있는 동일한 결과.
DTO 내에서 개체와 동적 사용을 매우 철저히 조사했지만 실제로이 질문에 도움이되는 것은 없었습니다.
감사합니다.
나는 당신의 문제를 재현 할 수 있습니다. 'request.data._object.ToString()'은 나를위한 적절한 JSON 객체이다. 그 외에는 좋은 접근 방법이 아닙니다. 당신은'object'의 실제 타입을 확인하고 그것을 deserialize하여 일류 모델로 만들어야합니다. –
어떻게 그 방법에 대한 제안? StripeEvent의 "type"값은이를 나타내며 json 문자열을 해당 클래스로 구문 분석하기 위해 switch 문을 만들려고했습니다. –
예. 'invoice.updated' 이벤트 타입을 처리하는 것은'object' 속성이'Invoice'임을 알아야합니다. –