2

我有一个简单的 json 字符串,其中包含一组对象 http://sandapps.com/InAppAds/ads.json.txt

当我调用 GetAsync 来获取对象时,集合返回 1 个元素而不是 4 个元素并且它是空的:

new JsonServiceClient ().GetAsync<List<CrossSell>> (url, Success, Failure);

我的课很简单:

class CrossSell 
{
    public string ID { get; set; }  
    public string AppCategory { get; set; } 
    public string AppID { get; set; }   
    public string Name { get; set; }    
    public string ImageUrl { get; set; }    
    public string Copy { get; set; }    
    public string Device { get; set; }  
    public string Link { get; set; }    
}
4

2 回答 2

3

JSON 假定响应 DTO 如下:

class CrossSellResponse {
  List<CrossSell> CrossSells { get; set; }
}

new JsonServiceClient().GetAsync<CrossSellResponse> (url, Success, Failure);

而不是您的 C# 示例所建议的裸数组:

new JsonServiceClient ().GetAsync<List<CrossSell>> (url, Success, Failure);
于 2012-04-09T19:47:57.687 回答
0

我找到了答案。您需要创建一个包含 JSON 响应的整体包装类。我叫我的CrossSellResponse

public class CrossSellResponse
{
   public List< CrossSell> CrossSells {get; set;}
}

该类CrossSell定义集合中的数据并以区分大小写的方式匹配字段名称。响应负载属性CrossSells的名称与 json 流中的集合名称相匹配。

于 2012-04-09T19:49:10.240 回答