数组之外的多个对象

本文关键字:对象 数组 | 更新日期: 2023-09-27 17:51:12

TrackIt Web API(我不能改变它)在返回对象中给了我这个JSON:

...
Notes: {
    Note1: {
         CreatedBy: "smarteam2"
         ...
    },
    Note2: {
         CreatedBy: "smarteam2"
         CreatedDate: "1/27/2014 2:37:36 PM" 
         ...
    }, ...

这里有N个音符。我不知道如何使用JSON对其进行反序列化。除非我做了一些感觉不对的事情,比如:

public class TrackItWorkOrderNotes
{
    public TrackItWorkOrderNotes Note1 { get; set; }
    public TrackItWorkOrderNotes Note2 { get; set; }
    public string IsPrivate { get; set; }
    public string FullText { get; set; }        
    public string WorkOrderNoteTypeId { get; set; }
}

在父元素中:

public class TrackitWorkOrder
{
    public TrackItWorkOrderNotes Notes { get; set; }
    public int Id { get; set; }
    ...

使用

ti = JsonConvert.DeserializeObject<TrackItResponse<TrackitWorkOrder>>(responseString);

我认为一定有更好的方法来获得笔记,而不需要在对象中预先定义N个。我相信TrackIt没有将"Notes"放在数组中可能会使这变得困难,但是是否有更聪明的方法来做到这一点?

数组之外的多个对象

使用Dictionary<string, Note>作为注释:

public class TrackitWorkOrder
{
    public Dictionary<string, TrackItWorkOrderNote> Notes { get; set; }
    public int Id { get; set; }
    ...
}
public class TrackItWorkOrderNote
{
    public string CreatedBy { get; set; }
    public string CreatedDate { get; set; }     
    ...
}