3

私は WebApi を使用して Json 文字列を返しています。

private async void setDataContext()
    {
        var str = (await HttpVerbs.HttpGet("commandelist/1"));
        //"[{\"Num\":\"10\",\"NomRestau\":\"Woodpecker\",\"Date\":\"11/23/2013 6:02:00 PM\",\"Total\":\"200\",\"Etat\":\"False\"},{\"Num\":\"9\",\"NomRestau\":\"Woodpecker\",\"Date\":\"11/23/2013 6:02:00 PM\",\"Total\":\"200\",\"Etat\":\"False\"},{\"Num\":\"8\",\"NomRestau\":\"Woodpecker\",\"Date\":\"11/23/2013 6:02:00 PM\",\"Total\":\"200\",\"Etat\":\"False\"}]";

        cmdList = (ObservableCollection<CommandeList>)JsonConvert.DeserializeObject(str, typeof(ObservableCollection<CommandeList>));
        Listu.DataContext = cmdList;
    }

ここで HttpVerbs クラス

public class HttpVerbs
{

    public static async Task<string> HttpGet(string url)
    {
        var httpClient = new HttpClient();

        return (await httpClient.GetStringAsync("http://{myWebSite}/api/" + url));
    }
}
  • コメント付きのJson文字列を「str」(変数)に直接割り当てると、すべてが機能します! しかし、webApi から取得しようとすると (このコードで行うように) 例外がスローされます

{Newtonsoft.Json.JsonSerializationException: 値の変換中にエラーが発生しました "[{"Num":"10","NomRestau":"Woodpecker","Date":"11/23/2013 6:02:00 PM","Total" :"200","Etat":"False"},{"Num":"9","NomRestau":"Woodpecker","Date":"11/23/2013 6:02:00 PM"," Total":"200","Etat":"False"},{"Num":"8","NomRestau":"Woodpecker","Date":"11/23/2013 6:02:00 PM" ,"Total":"200","Etat":"False"}]" を「System.Collections.ObjectModel.ObservableCollection`1[RestO.Models.CommandeList]」と入力します。パス ''、1 行目、位置 355。

注意: 私の文字列には 355 文字が含まれています。

これをモデルとして使用しました ""

public class CommandeList
{
    public string Num { get; set; }
    public string NomRestau { get; set; }
    public string Date { get; set; }
    public string Total { get; set; }
    public string Etat { get; set; }
}
4

1 に答える 1