2 回答
TA贡献2039条经验 获得超7个赞
您可以尝试将 api 结果反序列化为结果模型,然后从那里再次反序列化为位置模型。例子:
我的 API 模型
public class ApiResult
{
public Int32 Status { get; set; }
public string Message { get; set; }
public string Data { get; set; }
}
在数据内部,我从 API 复制所有返回结果,然后反序列化为精确模型。这是示例:
public static List<Models.OrderList> RetrieveOrderList(string host, List<Models.FilterCondition> filter)
{
string sResult = HttpHelper.httpPost(host + "api/Order/RetrieveOrderList", Newtonsoft.Json.JsonConvert.SerializeObject(filter));
Models.ApiResult mResult = Newtonsoft.Json.JsonConvert.DeserializeObject<Models.ApiResult>(sResult);
if (mResult.Status == 0)
throw new Exception(mResult.Message);
return Newtonsoft.Json.JsonConvert.DeserializeObject<List<Models.OrderList>>(mResult.Data);
}
如果你看到上面的 My return result(string),我反序列化为 API result Model,最后再次反序列化为 OrderList Model。希望这有助于解决您的问题。
更新:API 控制器 我忘了再提一点。在 API 控制器端您的结果需要复制到 API 模型。这是例子
[HttpPost]
public Models.ApiResult RetrieveOrderList(List<Models.FilterCondition> conditions)
{
Models.ApiResult mResult = new Models.ApiResult();
try
{
List<Models.OrderList>mOrderList= BLL.Order.RetrieveOrderList(conditions);
mResult.Status = 1;
mResult.Message = "Success";
mResult.Data = Newtonsoft.Json.JsonConvert.SerializeObject(mOrderList);
return mResult;
}
catch (Exception ex)
{
mResult.Status = 0;
mResult.Message = ex.Message;
mResult.Data = "";
return mResult;
}
}
TA贡献1784条经验 获得超2个赞
我的位置模型与 JSON 响应不匹配。一旦我读到我的 catch 语句中的异常是什么,我就看到“陷阱”应该是另一个列表。在我将 traps 属性更改为 List 然后为“陷阱”创建另一个类后,一切正常。
- 2 回答
- 0 关注
- 92 浏览
添加回答
举报