C# einzelne Daten von api auslesen und in string umwanden?

2 Antworten

Der String ist im JSON-Format. Das heißt, du kannst ihn zu einem Objekt deserialisieren. Lies hier, wie das geht.


CuzImQuadrix 
Fragesteller
 19.07.2021, 14:56

Werde ich gleich probieren danke :)

0

Zuerst musst du erstmal das Newtonsoft.Json package installieren denn damit ist es wesentlich leichter einen JSON-String zu bearbeiten.

Nachdem du das erledigt hast empfehle ich dir die Seite json2csharp dort hast du die möglichkeit einen JSON-String in eine C# Klasse zu konvertieren.

Danach kannst du ganz beliebig mit deinem JSON-Input arbeiten und dir einzeln die Daten auslesen.

Ein beispiel für deinen string wäre folgendes:

using Newtonsoft.Json;
using System;


namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
//Du musst natürlich hierbei die links wieder korrigieren
            string jsonResponse = "{\"query\": \"https://linkvertise . com/123/blabla?o=sharing\", \"destination\": \"https://www.mediafire . com/download/187istkuhlkappa\", \"cache_ttl\": 102992, \"success\": true, \"plugin\": \"cache\", \"time_ms\": 0}";
            APIRoot deserializedObj = JsonConvert.DeserializeObject<APIRoot>(jsonResponse);


            Console.WriteLine("Ursprung: {0}", deserializedObj.query);
            Console.WriteLine("Ziel: {0}", deserializedObj.destination);


            Console.ReadKey();
        }
    }


    public class APIRoot
    {
        public string query { get; set; }
        public string destination { get; set; }
        public int cache_ttl { get; set; }
        public bool success { get; set; }
        public string plugin { get; set; }
        public int time_ms { get; set; }
    }
}

Der output wäre hierbei folgender:

Ursprung: https://linkvertise . com/123/blabla?o=sharing
Ziel: https://www.mediafire . com/download/187istkuhlkappa
Woher ich das weiß:Berufserfahrung

lostcsharp  19.07.2021, 15:13

Edit: Habe jetzt erst gelesen das du auch die ms haben wolltest.

Das geht ganz einfach hiermit:

Console.WriteLine("MS: {0}ms", deserializedObj.time_ms);

Einfach bei den anderen beiden mit drunter packen :)

1
CuzImQuadrix 
Fragesteller
 19.07.2021, 18:30

hey, vielen dank für deine andwort. könntest du mir dein discord geben weil ich habe noch ein paar fragen wenn es ok wäre.

0