Ich arbeite mit OutBrain Api.Verschachtelte Array in JObject
In meinem Code die Funktion response.Content.ReadAsStringAsync();
ein Json-Objekt zurückgibt, die wie folgt aussieht:
{
"results": [
{
"metadata": {
"id": "2016-10",
"fromDate": "2016-10-01",
"toDate": "2016-10-30"
},
"metrics": {
"impressions": 1164823829,
"clicks": 2660235,
"conversions": 2228,
"spend": 463546.37,
"ecpc": 0.17,
"ctr": 0.23,
"conversionRate": 0.08,
"cpa": 208.05
}
},
{
"metadata": {
"id": "2016-09",
"fromDate": "2016-09-01",
"toDate": "2016-09-30"
},
"metrics": {
"impressions": 959483548,
"clicks": 2245759,
"conversions": 1777,
"spend": 385899.67,
"ecpc": 0.17,
"ctr": 0.23,
"conversionRate": 0.08,
"cpa": 217.16
}
},
{
"metadata": {
"id": "2016-08",
"fromDate": "2016-08-01",
"toDate": "2016-08-31"
},
"metrics": {
"impressions": 980319229,
"clicks": 2621017,
"conversions": 1818,
"spend": 358970.61,
"ecpc": 0.14,
"ctr": 0.27,
"conversionRate": 0.07,
"cpa": 197.45
}
}
],
"totalResults": 3,
"summary": {
"impressions": 3104626606,
"clicks": 7527011,
"conversions": 5823,
"spend": 1208416.65,
"ecpc": 0.16,
"ctr": 0.24,
"conversionRate": 0.08,
"cpa": 207.52
}
}
Ich versuche, die Daten in jedem „Metadaten“ und „Metriken“, die alle in der "zu erreichen sind Ergebnisse "aber es scheint, dass mein Code nicht funktioniert.
Mein Code:
string responseData = await response.Content.ReadAsStringAsync();
JObject campaignData = JsonConvert.DeserializeObject<dynamic>(responseData);
Dictionary<string, dynamic> mediaCampaigns = new Dictionary<string, dynamic>();
if (campaignData != null)
{
if (campaignData["totalResults"].ToString() != "1" & campaignData["totalResults"].ToString() != "0")
{
foreach (var campItem in campaignData)
{
mediaCampaigns.Add(campItem["@results"]["@metadata"]["@fromDate"]ToString(), new
{
cost = campaignData["@results"]["@metrics"]["@spend"] != null ? campaignData["@results"]["@metrics"]["@spend"] : 0,
clicks = campaignData["@results"]["@metrics"]["@clicks"] != null ? campaignData["@results"]["@metrics"]["@clicks"] : 0,
impressions = campaignData["@results"]["@metrics"]["@impressions"] != null ? campaignData["@results"]["@impressions"]["@impressions"] : 0,
conversions = campaignData["@results"]["@metrics"]["@conversions"] != null ? campaignData["@results"]["@metrics"]["@conversions"] : 0,
});
}
}
else
{
mediaCampaigns.Add(campaignData["@results"]["@metadata"]["@fromDate"].ToString(), new
{
cost = campaignData["@results"]["@metrics"]["@spend"] != null ? campaignData["@results"]["@metrics"]["@spend"] : 0,
clicks = campaignData["@results"]["@metrics"]["@clicks"] != null ? campaignData["@results"]["@metrics"]["@clicks"] : 0,
impressions = campaignData["@results"]["@metrics"]["@impressions"] != null ? campaignData["@results"]["@impressions"]["@impressions"] : 0,
conversions = campaignData["@results"]["@metrics"]["@conversions"] != null ? campaignData["@results"]["@metrics"]["@conversions"] : 0,
});
}
}
würde Ich mag etwas Hilfe bekommen, danke!
Was ist der Fehler Sie erhalten? – Mahdi
Ich kann nicht nur auf die Daten innerhalb des Json-Objekts zugreifen. Die foreach-Schleife hat nichts in das Dictionary eingetragen. – Tal
Warum deserialisieren Sie es nicht zu einem Objekt? Gibt es einen bestimmten Grund? – Mahdi