.NET의 JavascriptSerializer가 목록을 JSON으로 직렬화할 수 있나요?
객체 모델에 MyObjectInJson
이 포함되어 있다고 가정해 보겠습니다. 이 속성 ObjectInJson
은 중첩 목록의 직렬화된 버전을 저장합니다. 현재 다음과 같이 목록을 수동으로 직렬화하고 있습니다.
<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
같은 결과를 얻을 수 있나요?
JavascriptSerializer의 대안
.NET 6.0 이상에서는 내장된 System.Text.Json
파서를 사용하는 것이 좋습니다. 다음과 같이 반영 없이 효율적으로 목록을 직렬화합니다.
<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>
이전 .NET 버전(예: Core 2.2 이하)의 경우 Newtonsoft JSON.Net이 실행 가능한 대안입니다.
<code class="language-csharp">using Newtonsoft.Json; var json = JsonConvert.SerializeObject(aList);</code>
필요한 경우 이 패키지 설치를 고려하세요.
<code>PM> Install-Package Newtonsoft.Json</code>
쉽게 참조할 수 있도록 JavaScriptSerializer
을 사용한 원래 방법을 제공합니다.
<code class="language-csharp">// 需要引用 System.Web.Extensions using System.Web.Script.Serialization; var jsonSerialiser = new JavaScriptSerializer(); var json = jsonSerialiser.Serialize(aList);</code>
위 내용은 JavascriptSerializer가 .NET에서 목록을 JSON으로 직렬화할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!