我有一个简单的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; }
}
答案 0 :(得分: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);
答案 1 :(得分:0)
我找到了答案。您需要创建一个包含JSON响应的整体包装类。我称之为CrossSellResponse
public class CrossSellResponse
{
public List< CrossSell> CrossSells {get; set;}
}
类CrossSell
定义集合中的数据,并以区分大小写的方式匹配字段名称。响应有效内容属性CrossSells
的名称与json流中的集合名称匹配。