Maison >développement back-end >C++ >JavascriptSerializer peut-il sérialiser des listes en JSON dans .NET ?
JavascriptSerializer dans .NET peut-il sérialiser une liste en JSON ?
Supposons que votre modèle objet contienne MyObjectInJson
, dont la propriété ObjectInJson
stocke la version sérialisée de la liste imbriquée. Actuellement, vous sérialisez manuellement la liste comme ceci :
<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
Est-il possible d'arriver au même résultat ?
Alternatives à JavascriptSerializer
Pour .NET 6.0 et supérieur, il est recommandé d'utiliser l'analyseur System.Text.Json
intégré. Il sérialise les listes efficacement sans réflexion, comme ceci :
<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>
Pour les versions précédentes de .NET (par exemple, Core 2.2 et versions antérieures), Newtonsoft JSON.Net est une alternative viable :
<code class="language-csharp">using Newtonsoft.Json; var json = JsonConvert.SerializeObject(aList);</code>
Pensez à installer ce package si nécessaire :
<code>PM> Install-Package Newtonsoft.Json</code>
Pour faciliter la référence, la méthode originale utilisant JavaScriptSerializer
est fournie :
<code class="language-csharp">// 需要引用 System.Web.Extensions using System.Web.Script.Serialization; var jsonSerialiser = new JavaScriptSerializer(); var json = jsonSerialiser.Serialize(aList);</code>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!