2 回答

TA貢獻2039條經驗 獲得超8個贊
您可以嘗試將 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 關注
- 118 瀏覽
添加回答
舉報