2

json.netはクラスオブジェクトを単純な辞書にシリアライズできますか?

public class CommitData
{
    public AddressDTO Property { get; set; }

    public DateTime? Appointment { get; set; }

    public DateTime? Closed { get; set; }

    public DateTime? Created { get; set; }

    public string LenderRef { get; set; }

    public string YearBuilt { get; set; }

    public IDictionary<string, object> Custom { get; set; }
 }

public class AddressDTO
{
    public string Address1 { get; set; }
    public string Address2 { get; set; }
    public string Address3 { get; set; }
    public string Town { get; set; }
    public string County { get; set; }
    public string Postcode { get; set; }
}

シリアル化するときに取得したい:

{
"Property.Address1": "",
"Property.Address2": "uyg",
"LenderRef": "yguyg",
"Closed": date_here }

同様に、上記のような json 文字列を CommitData オブジェクトに逆シリアル化しますか?

4

1 に答える 1

0

はい、でも少し手間です。独自のJsonConverter. これにより、単純な文字列操作を行うことで、フラット化およびフラット化を解除できます。適切な一般的なソリューションを実現できますが、各プロパティで複数レベルの再帰を考慮する必要があるため、より多くの作業が必要になりますが、特にこのケースだけを気にする場合は、カスタム JsonConverterを使用してください

Json.net が内部的に使用するコンバーターの例を次に示します。

KeyValuePairConverter.cs

それが役に立てば幸い。

于 2013-07-11T05:08:52.790 に答える