.NET の JavascriptSerializer はリストを JSON にシリアル化できますか?
オブジェクト モデルに MyObjectInJson
が含まれており、そのプロパティ ObjectInJson
にネストされたリストのシリアル化されたバージョンが格納されているとします。現在、次のようにリストを手動でシリアル化しています:
<code class="language-csharp">StringBuilder TheListBuilder = new StringBuilder(); TheListBuilder.Append("["); int TheCounter = 0; foreach (MyObjectInJson TheObject in TheList) { TheCounter++; TheListBuilder.Append(TheObject.ObjectInJson); if (TheCounter != TheList.Count()) { TheListBuilder.Append(","); } } TheListBuilder.Append("]"); return TheListBuilder.ToString();</code>
JavascriptSerializer
同じ結果を達成することは可能ですか?
JavaScriptSerializer の代替手段
.NET 6.0 以降の場合は、組み込みの System.Text.Json
パーサーを使用することをお勧めします。次のように、リフレクションなしでリストを効率的にシリアル化します。
<code class="language-csharp">using System.Text.Json; using System.Text.Json.Serialization; var aList = new List<myobjectinjson> { new(1, "1"), new(2, "2") }; var json = JsonSerializer.Serialize(aList, Context.Default.ListMyObjectInJson); Console.WriteLine(json); return; public record MyObjectInJson ( long ObjectId, string ObjectInJson ); [JsonSerializable(typeof(List<myobjectinjson>))] internal partial class Context : JsonSerializerContext { }</code>
<code class="language-csharp">using Newtonsoft.Json; var json = JsonConvert.SerializeObject(aList);</code>
<code>PM> Install-Package Newtonsoft.Json</code>
を使用した元のメソッドが提供されています。 JavaScriptSerializer
以上がJavascriptSerializer は .NET でリストを JSON にシリアル化できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。