我正在使用CodeFluent JsonUtilities將對象轉換爲JSON。使用其他任何東西似乎都有其他各種問題(例如循環參考)。CodeFluent JSON序列化不適用於所有字段
下面是我使用CodeFluent.Runtime.Utilities命名空間(用於JsonUtilities)轉換爲JSON的ASP.NET MVC的一些函數。
public static ContentResult ConvertToJsonResponse(object obj)
{
string json = JsonUtilities.Serialize(obj);
return PrepareJson(json);
}
/// <summary>
/// Converts JSON string to a ContentResult object suitable as a response back to the client
/// </summary>
/// <param name="json"></param>
/// <returns></returns>
public static ContentResult PrepareJson(string json)
{
ContentResult content = new ContentResult();
content.Content = json;
content.ContentType = "application/json";
return content;
}
問題是,當我使用JsonUtilities轉換似乎跳過了一些嵌套對象的對象。
例如,我試圖使用CodeFluent將DataSourceResult對象(從Telerik)轉換爲JSON。
public ActionResult UpdateTeam([DataSourceRequest]DataSourceRequest request, TeamViewModel teamViewModel)
{
ModelState.AddModelError("", "An Error!");
DataSourceResult dataSourceResult = new[] { teamViewModel }.ToDataSourceResult(request, ModelState);
ContentResult ret = CodeFluentJson.ConvertToJsonResponse(dataSourceResult);
return ret;
}
的dataSourceResult擁有三個主要特性:
- 數據 - 它握住我的模型,包含我的數據。
- 總計 - 其中包含數據對象的數量。
- 錯誤 - 它包含我的MVC模型的所有錯誤。它非常嵌套,有很多屬性。
當我嘗試使用CodeFluent公用事業的DataSourceResult對象時,它的工作原理爲「數據」,以及「合計」字段轉換轉換,但有錯誤,它跳過它完全,導致下面的JSON字符串:
{
"Data":[
{
"ExampleProperty":"ExampleValue"
}
],
"Total":1,
"AggregateResults":null,
"Errors":{ }
}
我猜測問題是CodeFluent轉換器的「錯誤」對象過於嵌套。 所以我的問題是有沒有任何CodeFluent序列化選項/代碼我失蹤與JSON轉換嚴重嵌套的對象工作?
你能不能詳細說一下類是DataSourceResult?從什麼telerik產品? –
看到這個鏈接: https://doylestowncoder.wordpress.com/2014/04/14/kendoui-understanding-todatasourceresult/ Telerik DataSourceResult對象來自Telerik ASP.NET MVC。它是一個默認類,用於將我的響應格式化爲發送給Telerk ASP.NET MVC Grid(以及可能使用DataSource對象的其他控件)。 對於我的MVC Grid上的讀取操作,它執行所有的分頁,排序,篩選和格式化我的模型對象和模型狀態錯誤,以便將其發送回MVC Grid以處理CRUD操作。 對於創建/更新/刪除,據我所知,它主要是用於錯誤處理的目的。 – Oniisaki