2013-04-19 3 views
2
string result ="{"AppointmentID":463236,"Message":"Successfully Appointment Booked","Success":true,"MessageCode":200,"isError":false,"Exception":null,"ReturnedValue":null}" 

    dynamic d = JsonConvert.DeserializeObject<dynamic>(result); 

d.GetType() 대신하는 jobject 동적 객체 변환 동적 오브젝트 대신하는 jobjectNewton.JSON 동적 오브젝트

답변

3

이 아니에요 당신을 위해 작동하지 않는 당신은 반환 형식을 걱정하지만 왜 당신이 직접이 같은 직렬화 복원 된 객체의 속성에 액세스 할 수 있는지 매우 명확 :

string result = @"{""AppointmentID"":463236,""Message"":""Successfully Appointment Booked"",""Success"":true,""MessageCode"":200,""isError"":false,""Exception"":null,""ReturnedValue"":null}"; 
dynamic d = JsonConvert.DeserializeObject<dynamic>(result); 

string message = d.Message; 
int code = d.MessageCode; 
... 
+0

내가 직접 "D"때문에 액세스 속성을 캔트 동적 객체가 아니지만 JObject이므로 예외를 throw합니다. – sino

+1

''d "는 동적 객체가 아닙니다 .' : 잘못된 것입니다. 'd'는 동적 객체이므로 '동적'으로 선언하고 원하는 속성에 액세스 할 수 있습니다. 'JObject' 클래스는 호출을 자동적으로 그 속성에 디스패치하는 훌륭한 속성을 가지고 있습니다. 내 대답에 나와있는 코드를 사용해 보셨습니까? –

+0

실제로 코드를 시도하지 않았을 때 첫 번째 인상이며 해당 코드를 실행하면 문자열 message = d.Message에 오류가 발생합니다. "Message"가 존재하지 않고 그게 내 문제이기 때문에 – sino

0

를 직렬화하는 방법이므로

Newtonsoft.Json.Linq.JObject이다

당신은 아마

var values = JsonConvert.DeserializeObject<Dictionary<string, dynamic>>(json); 

이 같은도 (테스트되지 않은) 사용자의 요구

dynamic d = JsonConvert.DeserializeObject<ExpandoObject>(json); 
에 맞게 수 원하는
관련 문제