1

WCFサービスを作成し、IISで公開しました。Windows phone7でこのサービスにアクセスしようとしたので、Nugetパッケージからjson.netをインストールして実装します。正しい形式でjsonのシリアル化を取得しましたが、webClient_OpenReadCompletedメソッドでjsonの逆シリアル化が失敗します。ここにコードテンプレートを指定しました

private void webClient_OpenReadCompleted(object sender、DownloadStringCompletedEventArgs e){

string s = e.Result.ToString();
Customer deserCustomers = JsonConvert.DeserializeObject<Customer>(s);
int id=deserCustomers.CustomerId;
string n = deserCustomers.CustomerName;
lstCustomer.ItemsSource = deserCustomers.ToString();

}

以下のコードに到達している間、次のように例外が発生しました。

顧客deserializedCustomers=JsonConvert.DeserializeObject(s);

タイプ'Newtonsoft.Json.JsonSerializationException'の例外がNewtonsoft.Json.DLLで発生しましたが、ユーザーコードでは処理されませんでした。

このエラーを解決するための提案をください

4

1 に答える 1

2

実際には非常に単純です。jsonは次のような配列であるため、リストのクラスインターフェイスを作成する必要があります。

 public class Customer:List<object>
{        
    public int CustomerId{get; set;}        
    public string CustomerName{get; set;}
}

すべてがかなり基本的であるより

var deserCustomers = JsonConvert.DeserializeObject<Customer>(s);
foreach (var cust in deserCustomers) 
        {
          ....
        }

それがうまくいくことを願っています(:

于 2013-03-20T09:10:31.110 に答える