[C#] System.Text.Json の Serialize で JSON が空になる



現象

Xamarin の開発で System.Text.Json でシリアライズしようとしたときの話です。

Data という Json への変換を想定したモデルがあるとします。(名前は説明用の仮のものです)

このクラスを以下のように Serialize しても中身が空になってしまいます。

JsonSerializerOptions などのせいかと思い、いろいろ試しましたが、結果的にはオプションは関係ありませんでした。

解決

以下のように シリアライズ対象のプロパティは public に したところシリアライズした Json が取得できるようになりました。

public にしないとシリアライズされないというのは公式のドキュメントにも特に記載は無いようです。

internal にしてもビルドエラーにはならないので、なかなか気づきにくいところです。

ITエンジニア募集中!

キュアコード株式会社はITエンジニアを募集しております。少人数の職場なので、上流・下流やサーバー・クライアント対応の垣根なく、あなたの強みを活かしながら いろいろなことにチャレンジ可能です。エンジニアとしての未経験の方、経験が少ない方も歓迎しています。

下記よりITエンジニア募集の採用情報をご覧いただけます。


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA