ホームページ > バックエンド開発 > C++ > JavascriptSerializer は .NET でリストを JSON にシリアル化できますか?

JavascriptSerializer は .NET でリストを JSON にシリアル化できますか?

Mary-Kate Olsen
リリース: 2025-01-11 06:53:42
オリジナル
263 人が閲覧しました

Can JavascriptSerializer Serialize Lists to JSON in .NET?

.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

以上がJavascriptSerializer は .NET でリストを JSON にシリアル化できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート