Stripe Transfer JSON如何检索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
}
那么你在这个foreach上看到的是什么结构在“费用”上徘徊? – Andrew
事务下的数据看起来像一个数组,所以应该能够索引到它们? – Andrew
ya发布我认为正在工作的更新...这是所有来自webhook事件,我在本地测试,所以它的屁股调试真正的痛苦..要通过第三方位置隧道webhook暂时...凌乱 –