[英]How to retrieve nested json objects in C#?
我正在嘗試獲取與轉賬相關的所有費用ID。
var json = new StreamReader(context.Request.InputStream).ReadToEnd();
var stripeEvent = StripeEventUtility.ParseEvent(json);
StripeTransfer stripeTransfer;
switch (stripeEvent.Type)
{
case "transfer.created":
stripeTransfer = Stripe.Mapper<StripeTransfer>.MapFromJson(stripeEvent.Data.Object.ToString());
var transferId = stripeTransfer.Id;
stripeTransfer = _stripeManager.GetTransfer(transferId);
foreach (var charge in stripeEvent.Data.Object["transactions"])
{
}
_stripeManager.ProcessTransfer(stripeTransfer);
break;
在Visual Studio的直接窗口中, stripeEvent.Data.Object["transactions"]
顯示了我想要的數據,所以我知道json被正確地吸收了。 這些交易是收費的集合,它們與我的.net StripeCharge對象匹配。 我在弄清楚如何遍歷交易時遇到麻煩...我真正需要的只是每個交易的ID。 希望將“交易”視為C#IEnumerable對象。
(有問題的json鏈接在這篇文章的頂部)讓我知道是否需要更多信息。
我發現特定項目位於["transactions"]["data"][0]["id"]
但可能有多個,仍在研究如何將其投放並投放...認為我已經接近了,但似乎應該有一種更優雅的方法。
編輯,
謝謝安德魯,所以即使我擁有所有費用數據,它都是傳入數據。 因此,我要做的就是使用事件獲取ID,然后進行調用以從我自己的一端獲取費用對象,以防止發生任何事件欺騙。 因此,這意味着我現在不必擔心投射。 這是我的解決方案,請隨時告知是否有更好的方法
for (int i = 0; i < Int32.Parse(stripeEvent.Data.Object["transactions"]["total_count"].ToString()); i++)
{
string chargeId = stripeEvent.Data.Object["transactions"]["data"][i]["id"].ToString();
// do stuff with it
}
僅出於完整性考慮:事務下的數據看起來像一個數組,因此應該能夠對其進行索引。
如果將來需要訪問任何其他字段,則可以構造c#對象,但是考慮到webhook 3rd party舞,您已經不值得這樣做,因為您只需要id。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.