我正在研究一個以後端爲主的C#項目,但我並不是一個有經驗的C#開發人員,所以我無法弄清楚熱解決一個列表的json反序列化的物體。下面的函數是什麼需要反序列化的照顧,但我得到一個錯誤:反序列化json數組列表中的c#
using System.IO;
using System.Web;
using Raven.Imports.Newtonsoft.Json;
namespace Corina.Web.Handlers
{
public class JsonRequestHandler
{
public T Handle<T>(HttpContextBase context)
{
string requestData;
context.Request.InputStream.Position = 0;
using (var inputStream = new StreamReader(context.Request.InputStream))
{
requestData = inputStream.ReadToEnd();
}
return JsonConvert.DeserializeObject<T>(requestData, new Raven.Imports.Newtonsoft.Json.Converters.StringEnumConverter());
}
}
}
Error
:
不能反序列化JSON當前陣列(例如[1,2,3])轉換成類型 'Corina.Web.Views.DocumentViewModel',因爲該類型需要JSON 對象(例如{「name」:「value」})才能正確反序列化。
爲了解決這個錯誤或者改變JSON來JSON對象(例如 {「名稱」:「值」})或改變反序列化類型到一個數組或一個實現的集合接口 類型(例如ICollection的, IList) 就像可以從JSON數組反序列化的List。 也可以將JsonArrayAttribute添加到該類型,以強制它從一個JSON數組中反序列化 。
誰能告訴我如何在對象列表而不是對象上進行反序列化?
對我來說,我的理解是,你一起發送了2個JSON對象(就像你將這個對象附加到另一個對象上)並且不能將它們反序列化,並要求你發送一個對象,然後將它轉換爲List <> – Aristos 2013-02-27 09:19:16
Can你用JavaScriptSerializer嗎? – Popeye 2013-02-27 09:22:06
嗯,是的,我發了這樣的東西:'[Object,Object,....]';所以不能轉換。 – Roland 2013-02-27 09:22:07