2012-12-10 2 views
0

어떻게이 텍스트를 역 직렬화합니까? JSON으로 시도했지만 "잘못된 JSON 프리미티브"오류가 발생합니다.GET 응답을 역 직렬화

{ 
"meta": { 
    "limit": 20, 
    "next": null, 
    "offset": 0, 
    "previous": null, 
    "total_count": 1 
}, 
"objects": [ 
    { 
    "blocked": false, 
    "groups": [], 
    "id": "1111", 
    "name": "John Doe", 
    "number": "+15555555555", 
    "resource_uri": "/api/v1/contacts/1111/" 
    } 
] 
} 

이 내가 사용하는 코드는 다음과 같습니다 해결하기 위해

var jss = new JavaScriptSerializer(); 
var dictionary = jss.Deserialize<Dictionary<string, string>>(buffer.ToString()); 

답변

1

쉽습니다. <Dictionary<string, object> 대신

var dictionary = jss.Deserialize<Dictionary<string, object>>(buffer.ToString()); 

<Dictionary<string, string>의 전체 테스트 코드로 역 직렬화

string json = @"{ 
    ""meta"": { 
     ""limit"": 20, 
     ""next"": null, 
     ""offset"": 0, 
     ""previous"": null, 
     ""total_count"": 1 
    }, 
    ""objects"": [ 
     { 
      ""blocked"": false, 
      ""groups"": [], 
      ""id"": ""1111"", 
      ""name"": ""John Doe"", 
      ""number"": ""+15555555555"", 
      ""resource_uri"": ""/api/v1/contacts/1111/"" 
     } 
     ] 
    }"; 

var jss = new JavaScriptSerializer(); 
var dictionary = jss.Deserialize<Dictionary<string, object>>(json);