如何使用 json.net 将复杂的 json 对象转换为 CLR 对象



很抱歉有一个愚蠢的问题,但我还没有找到任何解决方案。

这是我的 JSON:

{
    "Id": "1",
    "Parent.Id": "1",
    "Agent.Id": "1",
    "Agent.Profile.FullName": "gena",
    "Fee": "10.1200",
    "FeeManagementDate": "29/11/2013",
    "Contact.Name": "Genady",
    "Contact.Telephone": "000000000",
    "Contact.Email": "gena@email.com",
    "AgreementUrl": "http://www.test.com/agreement"
}

这是我的对象

 public class ManagementDetailsViewModel : ViewModel<int> {
    public ManagementDetailsViewModel() {
    }
    public string AgreementUrl { get; set; }

    public HttpPostedFileBase AgreementFile { get; set; }

    public decimal Fee { get; set; } // payment data
    public DateTime? FeeDate { get; set; }

    public string FeeManagementDate {
        get { return FeeDate != null ? FeeDate.Value.ToString("dd/MM/yyyy") : DateTime.Now.ToString("dd/MM/yyyy"); }
        set {
            FeeDate = Convert.ToDateTime(value);
        }
    }
    public BusinessViewModel Parent { get; set; }
    public MemberViewModel Agent { get; set; }
    public Contact Contact { get; set; }
}

如何将json string convert对象(具有内部对象)?

>Json.Net 需要一些帮助,因为您的 JSON 对象包含属性名称,这在 C# 中无效 like( Agent.Id

var obj  = JsonConvert.DeserializeObject<MyObj>(json);

如何将 json 字符串转换为对象(带有内部对象)?

由于您的 json 是平面的(不包含子对象),如果您想以这种方式使用它,您必须对反序列化对象进行后处理/


public class MyObj
{
    public string Id { get; set; }
    [JsonProperty("Parent.Id")]
    public string ParentId { get; set; }
    [JsonProperty("Agent.Id")]
    public string AgentId { get; set; }
    [JsonProperty("Agent.Profile.FullName")]
    public string ProfileFullName { get; set; }
    public string Fee { get; set; }
    public string FeeManagementDate { get; set; }
    [JsonProperty("Contact.Name")]
    public string ContactName { get; set; }
    [JsonProperty("Contact.Telephone")]
    public string ContactTelephone { get; set; }
    [JsonProperty("Contact.Email")]
    public string ContactEmail { get; set; }
    public string AgreementUrl { get; set; }
}

相关内容

  • 没有找到相关文章

最新更新