ホームページ >バックエンド開発 >C++ >javascriptserializerを使用して、jsonの文字列として.net enumをシリアル化する方法は?

javascriptserializerを使用して、jsonの文字列として.net enumをシリアル化する方法は?

DDD
DDDオリジナル
2025-01-29 09:21:14279ブラウズ

How to Serialize a .NET Enum as a String in JSON using JavaScriptSerializer?

javascriptserializer

を使用したJSONの文字列としてのシリアル化.net enms

標準.NETJavaScriptSerializerは、多くの場合、JSON内の整数値としてenmsを出力します。 それらを名前を表す文字列としてシリアル化するために、いくつかの方法が存在します。

メソッド1:json.netの StringEnumConverterをレバレッジします

最も簡単で推奨されるアプローチは、json.netの強力な

を利用しています。 このコンバーターは、列挙定義レベルまたはプロパティレベルのいずれかで適用できます。 StringEnumConverter これにより、結果のJSONの文字列(「男性」または「女性」)としてシリアル化されます。

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

[JsonConverter(typeof(StringEnumConverter))]
public enum Gender { Male, Female }

public class Person
{
    public int Age { get; set; }
    [JsonConverter(typeof(StringEnumConverter))] // Or apply at property level
    public Gender Gender { get; set; }
}</code>
メソッド2:グローバル構成オプション

Gender より広いアプリケーションの場合は、グローバルに

を構成します:

enumレベルで:StringEnumConverterその列挙のすべての使用にわたって一貫した文字列シリアル化のために、コンバーターを列挙定義自体に適用します。

  • with

    コンバーターを固有
    <code class="language-csharp">  [JsonConverter(typeof(StringEnumConverter))]
      public enum Gender { Male, Female }</code>
  • withJsonSerializerシリアル化中にコンバーターを直接塗布します:JsonSerializer

    <code class="language-csharp">  var serializer = new JsonSerializer();
      serializer.Converters.Add(new StringEnumConverter());
      // ... use serializer to serialize your objects ...</code>
  • JsonConvertのカスタマイズ

    <code class="language-csharp">  string json = JsonConvert.SerializeObject(myObject, new StringEnumConverter());</code>
    コンストラクターはさらにカスタマイズされ、命名規則と数の処理を制御できるようにします。 詳細なオプションについては、json.netドキュメントを参照してください

以上がjavascriptserializerを使用して、jsonの文字列として.net enumをシリアル化する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。