Simple JsonConvert.DeserializeObject 不分配属性



这应该有效,而且非常基本。我的 json 字符串是(来自调试器):

json    "{"companyId":0,"companyName":"Windward 3","apiKey":null,"isEnabled":false,"isActive":false,"accruedRtusThisMonth":0,"billedRtusThisMonth":0,"overageChargesThisMonth":0.0,"pricingMode":3,"discount":null,"billingMode":1,"maxAdditionalMonthlyCharge":123.0,"billing":{"personId":0,"companyId":0,"isActive":false,"isAdmin":false,"isBilling":false,"firstName":"David","lastName":"Thielen","address1":"1 Main St.","address2":null,"city":"Boulder","state":"CO","country":"USA","postalCode":"80301","phone":"123-456-7890","email":"david@windward.net","password":"tree"},"creditCard":{"cardNumber":"4111111111111111","expiration":"2015-02-18T23:37:01.3135786Z","cvv":"123","useCardPerson":false,"cardPerson":null},"nextBaseBillingDate":"0001-01-01T00:00:00","nextOverageBillingDate":"0001-01-01T00:00:00","billingStatus":0,"billingErrorDate":null,"deactivateDate":null,"deleteDate":null}"   string

我的代码如下:

CompanyWrapper companyWrapper = JsonConvert.DeserializeObject<CompanyWrapper>(json,
                                                new JsonSerializerSettings());

而 CompanyWrapper 类是:

public class CompanyWrapper
{
    /// <summary>
    /// For the JSON population.
    /// </summary>
    public CompanyWrapper()
    {
    }
    /// <summary>
    /// For unit tests
    /// </summary>
    public CompanyWrapper(string companyName, PricingPlan.PRICING_MODE pricingMode, Company.BILLING_MODE billingMode, decimal maxAdditionalMonthlyCharge, PersonWrapper billing, CreditCardWrapper creditCard)
    {
        this.companyName = companyName;
        this.pricingMode = pricingMode;
        this.billingMode = billingMode;
        this.maxAdditionalMonthlyCharge = maxAdditionalMonthlyCharge;
        this.billing = billing;
        this.creditCard = creditCard;
    }
    /// <summary>
    /// The primary key. This is auto-generated in the database.
    /// </summary>
    public int companyId { get; private set; }
    /// <summary>
    /// The company name. This cannot be changed.
    /// </summary>
    public string companyName { get; private set; }
...
}

返回时 companyWrapper.companyName == null。这应该被分配。我错过了什么?

谢谢 - 戴夫

您需要公开属性资源库。

相关内容

  • 没有找到相关文章

最新更新