2016-07-04 2 views
2

RestSharp를 사용하여 JSON 문자열을 비 직렬화하려고합니다. 그러나 나는 "555111222"부분 주위의 약간 비표준 구조에 잡히다.C# RestSharp - 비표준 JSON 비 직렬화

숫자 555111222는 장치 일련 번호이므로 변경할 수 있거나 JSON 응답에 여러 개의 일련 번호가있을 수 있습니다. Json2csharp.com 내 클래스의 invalid_type 오류를 처리하는 방법을 잘 나에게 다음과 같은

public class GpsData 
{ 
    public double longitude { get; set; } 
    public double latitude { get; set; } 
    public string time { get; set; } 
} 

public class __invalid_type__555111222 
{ 
    public List<GpsData> gps_data { get; set; } 
} 

public class Data 
{ 
    public __invalid_type__555111222 __invalid_name__555111222 { get; set; } 
} 

public class RootObject 
{ 
    public string requestid { get; set; } 
    public Data data { get; set; } 
} 

임을 제공

{ 
"requestid": "42", 
"data": { 
    "555111222": { 
     "gps_data": [ 
      { 
       "longitude": -73.952284, 
       "latitude": 40.755988, 
       "time": "2016-06-30 09:41:21" 
      }, 
      { 
       "longitude": -73.952284, 
       "latitude": 40.755988, 
       "time": "2016-06-30 09:41:22" 
      }, 
      { 
       "longitude": -73.952284, 
       "latitude": 40.755988, 
       "time": "2016-06-30 09:41:23" 
      } 
     ] 
    } 
    } 
} 

.

public class GpsData 
{ 
    public double longitude { get; set; } 
    public double latitude { get; set; } 
    public string time { get; set; } 
} 

public class GpsDataWrapper 
{ 
    public List<GpsData> gps_data { get; set; } 
} 

public class RootObject 
{ 
    public string requestid { get; set; } 
    public Dictionary<string, GpsDataWrapper> data { get; set; } 
} 

개인적으로 다음 사용하는 모든 이들의 변환 것 :

GpsDataWrapperGpsData 속성 단지 클래스이고 그것은 Dictionary<string, GpsDataWrapper>해야 당신의 Data 재산처럼 나에게 보이는

+0

JSON 응답의 다른 일련 번호에 액세스해야합니까? – nozzleman

답변

5

주셔서 감사합니다 .NET 명명 규칙 및 JSON에서 사용되는 이름을 지정하는 특성을 적용합니다.

+0

안녕 존. 이것은 문제를 해결했습니다. 고맙습니다 – Mark