C# – So analysieren Sie JSON mit DeserializeObject von JSON.net

C# – So analysieren Sie JSON mit DeserializeObject von JSON.net

Ich habe kürzlich einen Beitrag zum Aufrufen der Yahoo-Finanz-API mit Details zum Serialisieren des zurückgegebenen JSON in ein Objekt erweitert. Ich habe mich entschieden, diesen Beitrag darauf basierend zu erstellen, da er anderen helfen könnte, die nur JSON deserialisieren müssen. Als Entwickler wandeln wir unsere JSON-Dateien gerne in Klassen um, damit sie einfacher zu handhaben sind und in dem von uns geschriebenen Code "nativer" sind. Ich werde das Beispiel aus dem Yahoo-API-Beitrag verwenden, aber es kann auf jedes JSON-Objekt angewendet werden.

Wir verwenden das folgende JSON als Beispiel:

{
  "quoteSummary": {
    "result": [
      {
        "assetProfile": {
          "address1": "One Apple Park Way",
          "city": "Cupertino",
          "state": "CA",
          "zip": "95014",
          "country": "United States",
          "phone": "408 996 1010",
          "website": "https://www.apple.com",
          "industry": "Consumer Electronics",
          "sector": "Technology"
        }
      }
    ]
  }
}

Um es zu einer Klasse zu serialisieren, brauchen wir eine Klasse - oder für die obigen mehrere Klassen. Jede Klasse muss eine Ebene (Objekt) im JSON darstellen und zusammen eine Darstellung der Struktur sein. Unten habe ich diese Klassen ab QuoteSummaryResponse erstellt (das äußere unbenannte Objekt) zu AssetProfile mit den eigentlichen Informationen:

public class QuoteSummaryResponse
{
    public QuoteSummary QuoteSummary { get; set; }
}

public class QuoteSummary
{
    public QuoteSummaryResult[] Result { get; set; }
}

public class QuoteSummaryResult
{
    public AssetProfile AssetProfile { get;set; }
}

public class AssetProfile
{
    public string address1 { get; set; }
    public string city { get; set; }
    public string state { get; set; }
    public string zip { get; set; }
    public string country { get; set; }
    public string phone { get; set; }
    public string website { get; set; }
    public string industry { get; set; }
    public string sector { get; set; }
}

Mit dem Obigen können wir den JSON mit DeserializeObject in ein Objekt deserialisieren und jede Eigenschaft abrufen, zum Beispiel die Adresse:

var data = JsonConvert.DeserializeObject<QuoteSummaryResponse>(responseBody);
var address = data.QuoteSummary.Result[0].AssetProfile.address1;

Das ist alles, Sie können jetzt mit dem JSON als Objekt arbeiten. Ich hoffe, Sie fanden dies hilfreich. Lassen Sie mich in den Kommentaren unten wissen, was Sie denken!