4

Json.net 4.5 を使用しています。JsonConverter を使用して、データをあるバージョンから別のバージョンに変換しています。

バージョン 1

    public class AV1
    {
        public string PNr { get; set; } // "x253yN-69Uj"
    }

バージョン 2

    public class AV2
    {
        public string FirstNr { get; private set; } // "x253yN"
        public string LastNr { get; private set; } // "69Uj"

        public void SetFirstAndLastNr(string a, string b, string c)
        {
            //Logic to set the values of FirstNr and LastNr
        }
    }

派生した JsonConverter で、AV2クラスのインスタンスを作成しています。しかし、プロパティは現在読み取り専用プロパティであるため、これらのプロパティの値をどのように設定すればよいですか? Json.net は同じことを行う方法を提供していますか? または、リフレクションを使用する必要がありますか?

4

2 に答える 2

1

読み取り専用プロパティを逆シリアル化したい場合は、これを試してください

public class AV2
{
    [JsonProperty]
    private readonly string _firstNr;
    [JsonProperty]
    private readonly string _lastNr;
    public string FirstNr => _firstNr// "x253yN"
    public string LastNr => _lastNr// "69Uj"


}
于 2018-06-19T08:31:25.770 に答える
-4

あなたが言ったように、変換する必要がある何百もの異なるクラスがJsonDeserializerあり、最良の選択ではないかもしれません.

AutoMapperのような他のソリューションを見るのは悪い考えではありません: http://automapper.org/ , https://github.com/AutoMapper/AutoMapper

1 ~ 2 時間かけてサンプル コードを確認すると、さまざまなオブジェクトを相互に変換 (マップ) するのが非常に強力で柔軟であることがわかります。

于 2013-06-28T01:52:39.320 に答える