JSON到带有空格的C#类名

JSON到带有空格的C#类名,c#,json,api,ssis,script-component,C#,Json,Api,Ssis,Script Component,我从一个API请求返回以下JSON类 "Top Uncommitted Spend": [ { "AccountID": 99999991, "H1": "Liabilities", "H2": "Top Uncommitted Spend", "H3": "", "SH1": "",

我从一个API请求返回以下JSON类

"Top Uncommitted Spend": [
                {
                  "AccountID": 99999991,
                  "H1": "Liabilities",
                  "H2": "Top Uncommitted Spend",
                  "H3": "",
                  "SH1": "",
                  "Description": "FUEL (ATM,ATM FEE)",
                  "Count": 4,
                  "FrequencyDescription": "Mostly 17 Days",
                  "FrequencyDuration": "Ongoing",
                  "FrequencyDurationDate": "11Aug - 30Sep",
                  "FrequencyWeekday": "",
                  "FrequencyAmount": 116,
                  "FrequencyAmountRange": "(2-280)",
                  "TotalAmount": 464,
                  "TotalInAmount": 0,
                  "TotalOutAmount": 464,
                  "MonthlyAmount": 305.5481,
                  "GroupID": "128081-1241",
                  "Display": "FUEL",
                  "FrequencyExactness": "Mostly",
                  "FrequencyPeriod": "17 Days",
                  "ScoreEmployer": null,
                  "ScoreDirCr": null,
                  "ScoreWeekday": null,
                  "ScoreFrequency": null,
                  "ScoreAmount": null,
                  "ScoreTotal": 0
                },
当我使用json2csharp生成我的类时,我得到了这个结果,因为标记的名称中有空格

    public class Liabilities
{
    public List<Rent> Rent { get; set; }
    public List<Periodic> Periodic { get; set; }
    public List<NonPeriodic> __invalid_name__Non-Periodic { get; set; }
    public List<TopUncommittedSpend> __invalid_name__Top Uncommitted Spend { get; set; }
}
公共类负债
{
公共列表租金{get;set;}
公共列表周期{get;set;}
公共列表uu无效u名称uu非周期{get;set;}
公共列表uuu无效uu名称uuu顶部未提交的花费{get;set;}
}
当我从名称中删除“\uuuu无效的\u名称\uuuu”时。My解析,但运行时抛出一个错误“对象引用未设置为对象实例”


我的问题是,如何将其序列化,以便在不删除空格的情况下取出数据?

请尝试删除空格,以便使用first获得有效的c#类

然后使用获取模型绑定器来识别它

例如:

public class Liabilities
{
    //removed other collections for simplicity
    [JsonProperty(PropertyName = "Top Uncommitted Spend")]  // <-- *add this*
    public List<TopUncommittedSpend> TopUncommittedSpend { get; set; }
}

public class TopUncommittedSpend
{
    public int AccountID { get; set; }
    public string H1 { get; set; }
    public string H2 { get; set; }
    //removed for simplicity
}

它应该可以工作。

很明显,它是空的,因为您更改了属性名称,因此它没有被填充-我不认为这与问题有什么关系。查看序列化库的文档,了解如何将属性映射到不同的JSON属性名称。可能涉及添加属性。请尝试询问此服务所有者-mailto:jon@jonkeith.comAwesome谢谢这就是我一直在努力解决的问题。
{
    "Top Uncommitted Spend": [{
            "AccountID": 99999991,
            "H1": "Liabilities",
            "H2": "Top Uncommitted Spend"
        }
    ]
}