Maison > développement back-end > C++ > JavascriptSerializer peut-il sérialiser des listes en JSON dans .NET ?

JavascriptSerializer peut-il sérialiser des listes en JSON dans .NET ?

Mary-Kate Olsen
Libérer: 2025-01-11 06:53:42
original
262 Les gens l'ont consulté

Can JavascriptSerializer Serialize Lists to JSON in .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>
Copier après la connexion

JavascriptSerializerEst-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>
Copier après la connexion

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>
Copier après la connexion

Pensez à installer ce package si nécessaire : ​​

<code>PM> Install-Package Newtonsoft.Json</code>
Copier après la connexion

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal