我正在开发一个主要以 C# 作为后端的项目,但我不是经验丰富的 C# 开发人员,所以我无法弄清楚如何修复对象列表的 json 反序列化。以下函数负责反序列化,但出现错误:
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 对象(例如 {"name":"value"})或将反序列化类型更改为数组或实现集合接口的类型(例如 ICollection、IList),例如可以从 JSON 数组反序列化。JsonArrayAttribute 也可以添加到类型中以强制它从 JSON 数组反序列化。
谁能告诉我如何在对象列表而不是对象上进行反序列化?