我正在使用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));
}
}
{Newtonsoft.Json.JsonSerializationException:转换值时出错 “[{”Num“:”10“,”NomRestau“:”啄木鸟“,”日期“:”2013年11月23日6:02:00 PM “ ”总“: ”200“, ”行政法院“: ”假“},{ ”民“: ”9“, ”NomRestau“: ”啄木鸟“, ”日期“:” 2013年11月23日 6时02分00秒 PM “ ”总“: ”200“, ”行政法院“: ”假“},{ ”民“: ”8“, ”NomRestau“: ”啄木鸟“, ”日期“:” 2013年11月23日 6:02:00 PM“,”总计“:”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; }
}
答案 0 :(得分:0)
在这里猜测,没有看到你如何从WebApi返回这个字符串。如果你的控制器动作方法有返回类型的字符串,这将不起作用。
这个答案显示了返回Json字符串的正确方法: Return a JSON string explicitly from Asp.net WEBAPI?
您需要将其打包到HttpResponseMessage中。