Heim >Backend-Entwicklung >C++ >Kann JavascriptSerializer Listen in .NET in JSON serialisieren?

Kann JavascriptSerializer Listen in .NET in JSON serialisieren?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2025-01-11 06:53:42342Durchsuche

Can JavascriptSerializer Serialize Lists to JSON in .NET?

Kann JavascriptSerializer in .NET eine Liste in JSON serialisieren?

Angenommen, Ihr Objektmodell enthält MyObjectInJson, dessen Eigenschaft ObjectInJson die serialisierte Version der verschachtelten Liste speichert. Derzeit serialisieren Sie die Liste manuell wie folgt:

<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 Ist es möglich, das gleiche Ergebnis zu erzielen?

Alternativen zu JavascriptSerializer

Für .NET 6.0 und höher wird empfohlen, den integrierten System.Text.Json Parser zu verwenden. Es serialisiert Listen effizient und ohne Reflexion, etwa so:

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

Für frühere .NET-Versionen (z. B. Core 2.2 und früher) ist Newtonsoft JSON.Net eine praktikable Alternative:

<code class="language-csharp">using Newtonsoft.Json;

var json = JsonConvert.SerializeObject(aList);</code>

Erwägen Sie bei Bedarf die Installation dieses Pakets:

<code>PM> Install-Package Newtonsoft.Json</code>

Zur leichteren Bezugnahme wird die ursprüngliche Methode mit JavaScriptSerializer bereitgestellt:

<code class="language-csharp">// 需要引用 System.Web.Extensions

using System.Web.Script.Serialization;

var jsonSerialiser = new JavaScriptSerializer();
var json = jsonSerialiser.Serialize(aList);</code>

Das obige ist der detaillierte Inhalt vonKann JavascriptSerializer Listen in .NET in JSON serialisieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn