c# - 从 Asp.Net WebApi 返回字符串后的 JsonConvert DeserializeObject 异常

标签 c# windows-phone-8 asp.net-web-api json-deserialization

我正在使用 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: Error converting value "[{"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"}]" to type 'System.Collections.ObjectModel.ObservableCollection`1[RestO.Models.CommandeList]'. Path '', line 1, position 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; }
}

最佳答案

只是猜测,没有看到你如何从 WebApi 返回这个字符串。如果您的 Controller 操作方法返回字符串类型,这将不起作用。

返回 Json 字符串的正确方法显示在这个答案中: Return a JSON string explicitly from Asp.net WEBAPI?

需要打包到HttpResponseMessage中。

关于c# - 从 Asp.Net WebApi 返回字符串后的 JsonConvert DeserializeObject 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20244461/

相关文章:

c# - NET 世界的 Jetty

c# - .NET 4.5 UserPrincipal.FindByIdentity (System.DirectoryServices.AccountManagement) 中的错误

c# - C#中Spliterator的等价物是什么?

c# - 本地主机上的 .net HTTP_X_FORWARDED_FOR NULL

dependency-injection - Windows Phone 8 的 IoC/DI 库是什么?

visual-studio - MVC 4 Web API 模板 - 可以删除的内容

asp.net-web-api - MapODataRoute 和 ODataQueryOptions

c# - 从json windows phone解析字典

android - Windows Phone 8 和 Android 可以通过 Wifi Direct 连接吗?

odata - 如何让 Odata Web API 以 XML 格式返回数据