【Unity】雑にUtf8Json
Utf8JsonでDictionary<string, object>
とかをガッとシリアライズできるようにします。
初期化
Utf8Json.Resolvers.CompositeResolver.RegisterAndSetAsDefault( new[] { Utf8Json.Formatters.PrimitiveObjectFormatter.Default }, new[] { Utf8Json.Resolvers.GeneratedResolver.Instance, // 作ってないなら要らない Utf8Json.Resolvers.BuiltinResolver.Instance, Utf8Json.Resolvers.DynamicGenericResolver.Instance });
バグ
現在のunitypackage(1.3.7)にはバグがあります。
たとえばこんなコード。
var obj = new Dictionary<string, object> { {"hoge", new [] { 1, 2, 3 } } }; var jsonString = Utf8Json.JsonSerializer.ToJsonString(obj); Debug.Log(jsonString); // -> {"hoge":[123]}
Json文字列の配列にカンマが抜けてますね。
↓の修正を反映しましょう。
何が雑かというと
コードジェネレータ使えっていう話ではあるんだけど、一方こういう使い方も許容されてますよという話ですね。