私はバックエンドとして主に 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"}) に変更するか、逆シリアル化された型を配列または List のようなコレクション インターフェイス (ICollection、IList など) を実装する型に変更します。 JSON 配列から逆シリアル化されます。JsonArrayAttribute を型に追加して、強制的に JSON 配列から逆シリアル化することもできます。
オブジェクトの代わりにオブジェクトのリストで逆シリアル化を行う方法を教えてもらえますか?