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
319 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 :

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();
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 :

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
{
}
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 :

using Newtonsoft.Json;

var json = JsonConvert.SerializeObject(aList);
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 :

// 需要引用 System.Web.Extensions

using System.Web.Script.Serialization;

var jsonSerialiser = new JavaScriptSerializer();
var json = jsonSerialiser.Serialize(aList);
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!

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