0

webClientWP8 アプリケーションで WCF サービスを呼び出す単純なものをセットアップすることができました。メソッドは完全に正常に起動し、OpenReadCompletedイベントを介してデータが返されます。

私が今やりたいことは、JSON にある返されたデータを変換し、オブジェクトのコレクションを作成することです。

これはwebClientコードです:

private void Button_Click(object sender, RoutedEventArgs e)
{
    var webClient = new WebClient();
    var uri = new Uri("urlGoesHere");
    webClient.OpenReadCompleted += webClient_OpenReadCompleted;
    webClient.OpenReadAsync(uri);
}

これはOpenReadCompleteコードです:

void webClient_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
{
    var sr = new StreamReader(e.Result);
    var data = sr.ReadToEnd();
    //ToDo - Create a collection of SightingTypes and populate
    sr.Close();
    sr.Dispose();
}

そして、これは私が入力したいPOCO /オブジェクトです:

public class SightingType
{
    public string Name { get; set; }
    public string BrandId { get; set; }
}

アップデート

データにカーソルを合わせると、次のように表示されます (短縮されています)。

{\"Message\":null,\"Status\":0,\"CurrentVersionNumber\":26,\"SightingTypes\":[{\"BrandId\":\"brands\\/1\",\"DestinationUserIds\":[\"users\\/33\"],\"Id\":\"SightingTypes\\/8\",\"IsDeleted\":false,\"IsEnabled\":true,\"Name\":\"Michael Johnson\"}

私が特に興味を持っているのは、NameBrandIdです。

4

3 に答える 3

2

JSON.Netをチェックすることをお勧めします。ニーズを満たす JSON シリアライザーが付属しています。

SightingType deserializedSightingType = JsonConvert.DeserializeObject<SightingType>(data);
于 2013-08-10T18:46:22.497 に答える
1

このコードを使用して、JSON を POCO に解析します

        //get the JSON string into 'responseText'

        // Deserialize response Message to JsonResponse
        var serializer = new JavaScriptSerializer();
        jsonResponse = serializer.Deserialize<JsonResponse>(responseText);

        // where in <> put your class 'SightingType'

JavaScriptSerializer クラスを使用するには、リソース System.Web.Extensions.dll を追加する必要があります。

于 2013-08-10T18:45:21.040 に答える