Base64로 인코딩 된 REST API에서 HTTPWebResponse를 사용하고 있습니다. 내가 해독 할 때 Deserialise는 괜찮은 것처럼 보이지만, 나는 clasess를 만들 때 유효하지 않은 이름이 있고 그 안에 공백이 있습니다.역 직렬화 된 JSON 공간이있는 C# 클래스를 다시 할당합니다.
JsonObject와 JsonProperty를 시도했지만 Visual Studio 2010과 SQL Server 2008 R2 (SSIS)에서 사용 가능한 참조와 이름 공간이없는 것 같아서이 문제를 해결하는 방법을 알 수 없습니다.
트랜잭션 세부 정보 파일이므로 매우 커서 여기에 게시 할 수 없습니다. 누군가가 위의 메서드를 사용하기 위해 올바른 참조를로드하는 방법을 가르쳐 주거나 공백이있는 Json 태그를 읽는 방법을 알려주고 SSIS의 C# 스크립트 구성 요소에서 유효하게 선언하는 방법이 있는지 궁금합니다.
예 : 응답 :
이 "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
}
]
},
예 : C# 클래스 선언 (json2csharp) 라이브러리를 사용하려면
public class HighRiskMerchant
{
public int AccountID { get; set; }
public string H1 { get; set; }
public string H2 { get; set; }
public string H3 { get; set; }
public string SH1 { get; set; }
public string Description { get; set; }
public int? Count { get; set; }
public string FrequencyDescription { get; set; }
public string FrequencyDuration { get; set; }
public string FrequencyDurationDate { get; set; }
public string FrequencyWeekday { get; set; }
public int? FrequencyAmount { get; set; }
public string FrequencyAmountRange { get; set; }
public int? TotalAmount { get; set; }
public int? TotalInAmount { get; set; }
public int? TotalOutAmount { get; set; }
public int? MonthlyAmount { get; set; }
public string GroupID { get; set; }
public string Display { get; set; }
public string FrequencyExactness { get; set; }
public string 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; }
}
DATA 출력이
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);
}
JSON 응답과 클래스를 공유하십시오. –
제가 말씀 드렸듯이 이것은 너무 커서 제멋대로입니다.하지만 예제를 추가했습니다. –
json을 게시 할 필요가 없습니다. json이 어떻게 생겼는지뿐만 아니라 클래스도 보여줄 수 있습니다. –