2014-02-18 3 views
2

분명히 어리석은 질문이 무엇인지 용서해주십시오.하지만 저는 C#으로 JSON을 사용하기 시작했습니다. 아주 간단한 RestSharp JSON 객체를 비 직렬화하는 방법은 무엇입니까?

public class DBCount 
{ 
    public string Count { get; set; } 
} 

내가 인스턴스 생성 :

나는이 수업이

공공 DBCount dbCount을;

내 웹 서비스는이 반환 :

[{ "카운트": "234"}]

그것을 응답 역 직렬화 할 때이 코드는 잘못된 캐스트를 던졌습니다 :

 var client = new RestClient("http://www.../") 
     var request = new RestRequest ("demo/jsondbcount.php",Method.GET); 
     request.RequestFormat = DataFormat.Json; 

     var response = client.Execute (request); 
     RestSharp.Deserializers.JsonDeserializer deserialCount = new JsonDeserializer(); 
     dbCount = deserialCount.Deserialize<DBCount> (response); 

"원본 형식에서 대상 형식으로 캐스트 할 수 없습니다"

누구든지 RestSharp를 사용하여 간단한 개체를 deserialize하는 간단한 방법을 가르쳐 주면 매우 위축 될 것입니다. eful. 기본 코드 샘플을 어디에서나 검색했습니다.

감사

+0

당신이 당신의 클래스에 직렬화 속성을 추가해야합니까? – PmanAce

답변

1

은 이미이를 알아 낸 수 있지만 문제는 []입니다. [{"Count":"234"}]Count 필드가있는 단일 개체가 포함 된 크기가 1 인 배열입니다.

DBCount으로 역 직렬화 할 개체를 서버에서 반환하려면 []없이 {"Count":"234"}을 반환하십시오. 당신은 당신의 코드가 올바르게 다음 [{"Count":"234"}]를 직렬화하는 경우

당신은과 같이 컬렉션을 직렬화 복원 있다는 표시해야합니다

deserialCount.Deserialize<List<DBCount>>(response); 
관련 문제