2

オブジェクトのコレクションを含む単純なjson文字列があります http://sandapps.com/InAppAds/ads.json.txt

GetAsyncを呼び出してオブジェクトを取得すると、コレクションは4つではなく1つの要素を返し、空になります。

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 に答える