当我尝试使用JsonConvert.DeserializeObject反序列化json字符串时,总是给我null null

当我尝试使用JsonConvert.DeserializeObject反序列化json字符串时,总是给我null null

问题描述:

帮我解决我的问题我尝试从Web API获取数据以用于方法发布,但始终显示为空。当我尝试使用JsonConvert.DeserializeObject反序列化json字符串时,总是给我null 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'的类。你期望什么? –

您的JSON是List<T>,你试图反序列化列表中的对象,请尝试反序列化为List<T>

+0

但ShippingQuantityData是一个包含List 和一个字符串属性(Message)的单个对象。所以我认为这对序列化没有任何问题。 –

+0

我已经指这个了。 – narekye

+1

感谢您的意见,我的问题得到解决,将此装饰器设置为所有propertys和ii工作[JsonProperty(“NamePropertyObjectJson”)] –