Rumah >pembangunan bahagian belakang >C++ >Bolehkah JavascriptSerializer Mensiri Senarai kepada JSON dalam .NET?

Bolehkah JavascriptSerializer Mensiri Senarai kepada JSON dalam .NET?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-11 06:53:42296semak imbas

Can JavascriptSerializer Serialize Lists to JSON in .NET?

Bolehkah JavascriptSerializer dalam .NET menyusun senarai ke JSON?

Andaikan model objek anda mengandungi MyObjectInJson, yang sifatnya ObjectInJson menyimpan versi bersiri senarai bersarang. Pada masa ini, anda sedang menyusun senarai secara manual seperti ini:

<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 Adakah mungkin untuk mencapai hasil yang sama?

Alternatif kepada JavascriptSerializer

Untuk .NET 6.0 dan ke atas, disyorkan untuk menggunakan penghurai System.Text.Json terbina dalam. Ia menyerikan senarai dengan cekap tanpa refleksi, seperti ini:

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

Untuk versi .NET sebelumnya (cth., Teras 2.2 dan lebih awal), Newtonsoft JSON.Net ialah alternatif yang berdaya maju:

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

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

Pertimbangkan untuk memasang pakej ini jika perlu: ​​

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

Untuk memudahkan rujukan, kaedah asal menggunakan JavaScriptSerializer disediakan:

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

using System.Web.Script.Serialization;

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

Atas ialah kandungan terperinci Bolehkah JavascriptSerializer Mensiri Senarai kepada JSON dalam .NET?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn