概要
using System.Text.Json; using UnityEngine; public enum CharacterType { NONE, PLAYER, ENEMY, } public class Example : MonoBehaviour { private void Start() { var data = new { characterType = CharacterType.PLAYER }; Debug.Log( JsonSerializer.Serialize( data ) ); } }
列挙型の要素を持つ型を普通に JSON にシリアライズすると
{"characterType":1}
上記のように列挙型の値は数値で表示される
列挙型の値を要素の名前でシリアライズしたい場合は
var options = new JsonSerializerOptions { Converters = { new JsonStringEnumConverter( JsonNamingPolicy.CamelCase ) }, }; Debug.Log( JsonSerializer.Serialize( data, options ) );
上記のようにオプションを指定する
{"characterType":"player"}
オプションを指定すると列挙型の値を要素の名前でシリアライズできる