ホームページ > バックエンド開発 > C++ > JavaScriptSerializerを使用して、列挙を文字列としてシリアル化するにはどうすればよいですか?

JavaScriptSerializerを使用して、列挙を文字列としてシリアル化するにはどうすればよいですか?

Susan Sarandon
リリース: 2025-01-29 09:36:11
オリジナル
468 人が閲覧しました

How Can I Serialize Enums as Strings Using JavaScriptSerializer?

JavaScriptSerializerを使用して、列挙された文字列シリアル化を処理します

JavaScriptSerializer列挙属性を含むシリアル化オブジェクトを使用する場合、JSON結果は、列挙された文字列表現の代わりに整数値を含む問題に遭遇することがよくあります。

列挙属性を含むサンプルクラスを検討してください:

<code class="language-csharp">public class Person
{
    public int Age { get; set; }
    public Gender Gender { get; set; }
}</code>
ログイン後にコピー
予想されるjson結果:

質問:
<code class="language-json">{ 
    "Age": 35, 
    "Gender": "Male" 
}</code>
ログイン後にコピー

javascriptserializerを使用して、性別属性は、「性別」:「男性」の代わりに「性別」:0などの整数値にシリアル化されます。

解決策:

newtonsoft.jsonを使用を使用します newtonsoft.jsonは、

属性を使用するためのソリューションを提供します:

グローバル構成コンバーター[JsonConverter]

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

public class Person
{
    public int Age { get; set; }

    [JsonConverter(typeof(StringEnumConverter))]
    public Gender Gender { get; set; }
}</code>
ログイン後にコピー
機器のカテゴリ:

    属性自体に属性を追加し、すべてのインスタンスを文字列にシリアル化/カウンター - シリアル化します。
  • jsonserializer:コンバーターをシリアイザーに追加して、すべての列挙がシリアル化プロセス中に処理されるようにします。 [JsonConverter]
  • jsonconverrクラス:
  • トランスをシリアル化して、特定のオブジェクトの列挙を制御します。
  • その他の構成:
  • コンストラクターにより、ケースの制御と値の受け入れが可能になります。

以上がJavaScriptSerializerを使用して、列挙を文字列としてシリアル化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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