2013-12-14 5 views
0

API에서이 JSON 데이터 구조를 비 직렬화하는 데 문제가 있습니다. JSON 데이터를 변경할 가능성이 없으므로 그대로 직렬화해야합니다. 사전에 동적 키 JSON 역 직렬화

{"success":"1","return":{"balances_available":{"ALF":"0.00000000","AMC":"0.00000000","ADT":"0.00000000","ANC":"0.00000000"}}} 

은 현재 내가 노력이

DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(Response)); 
balances = serializer.ReadObject(ms) as Response; 

[DataContract] 
public class Response 
{ 
    [DataMember(Name = "success")] 
    public int Status { get; set; } 

    [DataMember(Name = "return")] 
    public Balance Return { get; set; } 
} 

[DataContract] 
public class Balance 
{ 
    [DataMember(Name = "balances_available")] 
    public Dictionary<string, string> BalancesAvailable { get; set; } 
} 

하지만 내 사전이 0 항목을 얻을, 그래서 직렬화 beeing는되는 것처럼 보이지 않는다. 모든 잔액 항목 (ALF, AMC 등)을 정의하는 클래스를 수동으로 생성하는 것보다 다른 방법으로 수정할 수 있습니까?

var settings = new DataContractJsonSerializerSettings 
        { 
         UseSimpleDictionaryFormat = true 
        }; 
var serializer = new DataContractJsonSerializer(typeof(Response), settings); 

을 그리고이 일이 될 것입니다 :

답변

1

이 같은 DataContractJsonSerializerSettings를 추가해야합니다. 행운을 빕니다!

+0

Perfect! 그것은 작동, 많은 감사 :) – Martin