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 回答