【发布时间】:2016-10-08 17:27:38
【问题描述】:
我正在开发 2 个网络应用程序; A & B. 现在我在两个 Web 应用程序上都有一个名为 CRUDOutput 的共享类:-
public class CRUDOutput
{
public Operation4 operation { get; set; }
}
public class Operation4
{
public Result result { get; set; }
public string name { get; set; }
}
public class Result
{
public string status { get; set; }
public string message { get; set; }
}
现在在 Web 应用程序 A 中,我返回以下内容:-
[HttpPost]
public ActionResult CreateResource(CreateResource cr)
{
List<CRUDOutput> co = new List<CRUDOutput>();
co.Add(JsonConvert.DeserializeObject<CRUDOutput>(crudoutput));
co.Add(JsonConvert.DeserializeObject<CRUDOutput>(crudoutput2));
return Json(JsonConvert.SerializeObject(co));
}
现在从 web 应用程序 B,我调用 action 方法如下:-
try
{
using (WebClient wc = new WebClient())
{
string url = "https://localhost:44302/" + "Home/CreateResource";
Uri uri = new Uri(url);
wc.Headers.Add(HttpRequestHeader.ContentType, "application/json");
output = wc.UploadString(uri, data);
}
}
catch (WebException e)
{
}
List<CRUDOutput> result = JsonConvert.DeserializeObject<List< CRUDOutput>>(output);
但是当我尝试反序列化输出时会出现以下异常:-
错误转换值 "[{"operation":{"result":{"status":"Success","message":"资源有 已成功添加到......"},"name":"CREATE RESOURCE"}},{"operation":{"result":{"status":"Failed","message":"Account 添加 "},"name":"ADD ACCOUNTS"}}]" 输入 'System.Collections.Generic.List`1[S.ViewModels.CRUDOutput]'。小路 '', 第 1 行,位置 464。
现在从 Web 应用程序 A 返回的 JSON 如下:-
"\"[{\\\"operation\\\":{\\\"result\\\":{\\\"status\\\":\\\"Success\\\",\\\"message\\\":\\\"Resource 123 rfrf has been added successfully \\\"},\\\"name\\\":\\\"CREATE RESOURCE\\\"}},{\\\"operation\\\":{\\\"result\\\":{\\\"status\\\":\\\"Failed\\\",\\\"message\\\":\\\"Account addition \\\"},\\\"name\\\":\\\"ADD ACCOUNTS\\\"}}]\""
那么谁能告诉我为什么我无法反序列化为对象列表?
【问题讨论】:
-
控制器方法中的
result是什么? -
@AmitKumarGhosh 对不起,我错过了输入,,
标签: c# asp.net json asp.net-mvc json.net