JSON désérialisé de class C # avec espaces

Je consum une HTTPWebResponse à partir d'une API REST qui revient en Base64 Encoded. Quand je décode, il semble que je désérialise bien, mais quand je crée des clasess, j'ai des noms qui sont invalides et qui ont des espaces.

J'ai essayé JsonObject et JsonProperty mais je ne semble pas avoir les references et les namespaces disponibles dans Visual Studio 2010 et SQL Server 2008 R2 (SSIS) et je ne peux pas comprendre comment dépasser cela.

C'est un file de détails de transaction et en tant que tel est très grand et ne peut pas être posté ici. Je me request si quelqu'un peut me montrer comment charger les bonnes references pour utiliser les methods ci-dessus ou bien comment lire les balises Json avec des espaces et les déclarer validement dans le composant de script c # dans SSIS.

EXEMPLE: RÉPONSE:

"High Risk Merchants": { "High Risk Merchants": [ { "AccountID": 4829640, "H1": "High Risk Merchants", "H2": "High Risk Merchants", "H3": "", "SH1": "", "Description": "{NO MATCH}", "Count": null, "FrequencyDescription": null, "FrequencyDuration": null, "FrequencyDurationDate": null, "FrequencyWeekday": null, "FrequencyAmount": null, "FrequencyAmountRange": null, "TotalAmount": null, "TotalInAmount": null, "TotalOutAmount": null, "MonthlyAmount": null, "GroupID": null, "Display": null, "FrequencyExactness": null, "FrequencyPeriod": null, "ScoreEmployer": null, "ScoreDirCr": null, "ScoreWeekday": null, "ScoreFrequency": null, "ScoreAmount": null, "ScoreTotal": null } ] }, 

EXEMPLE: Déclaration de class C # (json2csharp)

 public class HighRiskMerchant { public int AccountID { get; set; } public ssortingng H1 { get; set; } public ssortingng H2 { get; set; } public ssortingng H3 { get; set; } public ssortingng SH1 { get; set; } public ssortingng Description { get; set; } public int? Count { get; set; } public ssortingng FrequencyDescription { get; set; } public ssortingng FrequencyDuration { get; set; } public ssortingng FrequencyDurationDate { get; set; } public ssortingng FrequencyWeekday { get; set; } public int? FrequencyAmount { get; set; } public ssortingng FrequencyAmountRange { get; set; } public int? TotalAmount { get; set; } public int? TotalInAmount { get; set; } public int? TotalOutAmount { get; set; } public int? MonthlyAmount { get; set; } public ssortingng GroupID { get; set; } public ssortingng Display { get; set; } public ssortingng FrequencyExactness { get; set; } public ssortingng FrequencyPeriod { get; set; } public object ScoreEmployer { get; set; } public object ScoreDirCr { get; set; } public object ScoreWeekday { get; set; } public object ScoreFrequency { get; set; } public object ScoreAmount { get; set; } public int? ScoreTotal { get; set; } } public class HighRiskMerchants { public List<HighRiskMerchant> __invalid_name__High Risk Merchants { get; set; } } 

Appels de sortie de données

  foreach (HighRiskMerchant hrm in ac.Overviews.Overview.HighRiskMerchants.HighRiskMerchantEntity) { RptOverviewDataBuffer.AddRow(); RptOverviewDataBuffer.Type = "HighRiskMerchants"; RptOverviewDataBuffer.SubType = "HighRiskMerchantsEntity"; RptOverviewDataBuffer.AccountID = Convert.ToInt32(hrm.AccountID); RptOverviewDataBuffer.H1 = hrm.H1; RptOverviewDataBuffer.H2 = hrm.H2; RptOverviewDataBuffer.H3 = hrm.H3; RptOverviewDataBuffer.SH1 = hrm.SH1; RptOverviewDataBuffer.Description = hrm.Description; RptOverviewDataBuffer.Count = Convert.ToInt32(hrm.Count); RptOverviewDataBuffer.FrequencyDescription = hrm.FrequencyDescription; RptOverviewDataBuffer.FrequencyDuration = hrm.FrequencyDuration; RptOverviewDataBuffer.FrequencyDurationDate = hrm.FrequencyDurationDate; RptOverviewDataBuffer.FrequencyWeekday = hrm.FrequencyWeekday; RptOverviewDataBuffer.FrequencyAmount = Convert.ToDouble(hrm.FrequencyAmount); RptOverviewDataBuffer.FrequencyAmountRange = hrm.FrequencyAmountRange; RptOverviewDataBuffer.TotalAmount = Convert.ToDouble(hrm.TotalAmount); RptOverviewDataBuffer.TotalInAmount = Convert.ToDouble(hrm.TotalInAmount); RptOverviewDataBuffer.TotalOutAmount = Convert.ToDouble(hrm.TotalOutAmount); RptOverviewDataBuffer.MonthlyAmount = Convert.ToDouble(hrm.MonthlyAmount); RptOverviewDataBuffer.GroupID = hrm.GroupID; RptOverviewDataBuffer.Display = hrm.Display; RptOverviewDataBuffer.FrequencyExactness = hrm.FrequencyExactness; RptOverviewDataBuffer.FrequencyPeriod = hrm.FrequencyPeriod; RptOverviewDataBuffer.ScoreEmployer = Convert.ToInt32(hrm.ScoreEmployer); RptOverviewDataBuffer.ScoreDirCr = Convert.ToInt32(hrm.ScoreDirCr); RptOverviewDataBuffer.ScoreWeekday = hrm.ScoreWeekday; RptOverviewDataBuffer.ScoreFrequency = hrm.ScoreFrequency; RptOverviewDataBuffer.ScoreAmount = Convert.ToDouble(hrm.ScoreAmount); RptOverviewDataBuffer.ScoreTotal = Convert.ToInt32(hrm.ScoreTotal); } 

Pour que la bibliothèque puisse être utilisée, vous pouvez utiliser nuget pour installer "Json.Net"

Dans cet exemple, ce serait:

 public class HighRiskMerchants { [JsonProperty(PropertyName = "High Risk Merchants")] public List<HighRiskMerchant> HighRiskMerchants { get; set; } }