2017-10-09 1 views
-1

도와주세요. 내 문제로 도와주세요. 메소드 게시를 위해 웹 API에서 데이터를 가져 오려고했지만 항상 null을 표시하려고합니다.JsonConvert.DeserializeObject를 사용하여 json 문자열을 역 직렬화하려고하면 항상 null이됩니다.

public class ShippingQuantity 
    { 
     public string QuantityLoad { get; set; } 
     public string QuantityLoaded { get; set; } 
     public string QuantityPendingLoad { get; set; } 
     public string ElementInfo { get; set; } 
     public Guid kElement { get; set; } 
     public string LineNumber { get; set; } 
    } 


    public class ShippingQuantityData 
    { 
     public List<ShippingQuantity> shippingData { get; set; } 
     public string message { get; set; } 
    } 

과 디버깅 모드로 실행할 때의 내 코드

  using (var client = new HttpClient()) 
     { 
      client.BaseAddress = new Uri(Baseurl); 
      client.DefaultRequestHeaders.Clear(); 
      client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); 
      HttpResponseMessage Res = await client.PostAsync(urlService, formContent); 
      if (Res.IsSuccessStatusCode) 
      { 
       var Response = Res.Content.ReadAsStringAsync().Result; 
       data = JsonConvert.DeserializeObject<ShippingQuantityData>(Response); 
      } 

변수 응답을 보여

"{ 
    \"data\": [ 
    { 
     \"QuantityLoad\": \"5\", 
     \"QuantityLoaded\": \"1\", 
     \"QuantityPendingLoad\": \"4\", 
     \"ElementInfo\": \"2147-PIZZA 6 UNIDADES\", 
     \"kElement\": \"8fa2ec91-2b20-415c-a65d-11c13d6725fd\", 
     \"LineNumber\": \"1\" 
    } 
    ], 
    \"Message\": \"\" 
}" 

감사

+0

클래스가 'ShippingQuantity'라고 오타가되어'ShippingQuantityData'를 비 직렬화하고 있습니까? –

+0

나는 다른 클래스를 배치하는 것을 잊어 버린다. 나는 대답을 업데이트한다. –

+1

JSON에는'data'라는 속성과'Message'라는 속성이 있으며, 클래스에는'shippingData'와'message'라는 속성이있다. 너는 무엇을 기대 했는가? –

답변

0

귀하의 JSON은 List<T>이며 역 직렬화하려고 개체에 대한 목록을 List<T>으로 역 직렬화하십시오.

+0

그러나 ShippingQuantityData는 List 및 문자열 속성 (Message)을 포함하는 단일 객체입니다. 그래서 나는 그것이 직렬화에 어떤 문제도 없을 것이라고 생각한다. –

+0

나는 이미 이것을 의미한다. – narekye

+1

의견을 보내 주셔서 감사합니다. 내 문제가 해결되었습니다.이 decorator를 모든 propertys에 설정하고 작업합니다. [JsonProperty ("NamePropertyObjectJson")] –