簡體   English   中英

如何在C#中檢索嵌套的json對象?

[英]How to retrieve nested json objects in C#?

條帶傳輸JSON

我正在嘗試獲取與轉賬相關的所有費用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM