2012-05-18 3 views
1

는 빌드 - 인 JsonSerializer에 사용자 지정 계약 해결 였을를 제공 할 수 있습니까?ServiceStack 사용자 정의 계약 해결

응답 데이터는이 같은 포맷 :

{ 
    "name":"Rob Angelier" 
} 

내가 설정하려는 속성은 다음과 같습니다 이름

질문은 : 어떻게 표기를 pascalcase하는 낙타 표기법에서 역 직렬화 할 수 있습니까?

당신이 날 도울 수 있기를 바랍니다!

답변

1

당신이 이름 속성을 얻을 수 있습니다 다음 ServiceStack JSON에서

class Contact { 
    public string Name { get; set; } 
} 
var contact = json.FromJson<Contact>(); 

:

string name = JsonObject.Parse(json)["name"]; 

는 그렇지 않은 경우에 직렬화하기 위해 JSON과 일치하는 강력한 형식의 클래스, 예를 만들 수 있습니다 테스트 스위트를 찾을 수 있습니다 multiple different ways 같은 것을 deserialize합니다.

+0

나는 직렬화 및 역 직렬화하는 방법을 알고있다. 문제는 camelcase 표기법에서 파스칼 표기법으로 deserialize 할 수있는 방법입니다. JSON.net 라이브러리 내에서 사용자 정의 계약 리졸버 (custom contract resolver)를 사용할 수 있지만 ServiceStack 시리얼 라이저에서도 가능합니다. 여기 –

+0

내가 무엇을 찾고 있어요에 대한 몇 가지 추가 정보 : http://james.newtonking.com/projects/json/help/ContractResolver.html –

+0

역 직렬화는 대소 문자를 구별하지 당신이 할 수 있도록 파스칼/낙타 표기법과 그 사이에 해제 직렬화입니다 -versa. 'JsConfig.EmitCamelCaseNames = 진정한;'를 방출, 낙타 표기법 속성 : 예 : https://github.com/ServiceStack/SocialBootstrapApi/blob/master/src/SocialBootstrapApi/App_Start/AppHost.cs#L94 그건 내가 찾고 있어요 무엇 – mythz

관련 문제