Efficienter programmeren door middel van het gebruik van externe tools header image

Efficienter programmeren door middel van het gebruik van externe tools

donderdag 2 april 2020 ·Leestijd: 7 minuten
contacteer auteur:

Iedere programmeur zal er bekend mee zijn: Wanneer je bezig bent met het schrijven van een koppeling, laten we zeggen een integratie met je CRM, zul je bepaalde data moeten updaten. In ons geval werken we met een stuk JSON welke we willen doorsturen naar ons CRM. We kunnen hier natuurlijk een stuk JSON voor gaan vullen en deze doorsturen, maar het is niet alleen een fraaiere oplossing wanneer we dit automatisch genereren op basis van een klasse, maar ook nog een sneller, want we hoeven niet met de hand een complete klasse te schrijven. Dit is mogelijk via Quicktype. QuickType stelt ons in staat een stuk JSON in te geven, en er een klasse uit te krijgen in een reeks van programmeertalen.

Gemakkelijk JSON omzetten naar C#

We gebruiken onderstaand voorbeeld:

{
  "Organisatie": {
    "Sub1": {
      "Velden": {
        "Vergelijking": "4",
        "Nr": "12345",
        "Nm": "Sigma Solutions B.V.",
        "Type": "30",
        "kvK": "123456789",
        "EmAd": "info@sigmasolutions.nl",
        "HoPa": "https://sigmasolutions.nl",
        "EmAm": "05"
      },
      "Sub2": {
        "Adres": {
          "Element": {
            "Fields": {
              "Land": "NL",
              "Ad": "Wilhelminalaan",
              "HmNr": 1,
              "ZpCd": "1815JC",
              "Rs": "Alkmaar"
            }
          }
        },
        "Contact": {
          "Element": {
            "Velden": {
              "Type": "PRS",
              "Linkedin": "linkedin.com/in/armanddewaard"
            }
          }
        }
      }
    }
  }
}

Wanneer we bovenstaande JSON omzetten naar C#, krijgen we daar onderstaande klasse uit. Hierin worden niet alleen de verschillende subklassen en attributen aangemaakt, maar wordt tevens aangegeven met welke individueel attribuut in de JSON (JsonProperty) het C#-attribuut overeenkomt. Dit houdt in dat je in C# je attribuut kunt hernoemen, zonder dat je JSON-omzetting kapot gaat.

Door deze tool te gebruiken, ben je dus niet alleen efficiënter, maar verklein je ook nog eens je foutmarge. Het genereren van complexe klassen is namelijk geautomatiseerd, waardoor de kans op fouten minder wordt.

public partial class QuickTypeTest
    {
        [JsonProperty("Organisatie")]
        public Organisatie Organisatie { get; set; }
    }

    public partial class Organisatie
    {
        [JsonProperty("Sub1")]
        public Sub1 Sub1 { get; set; }
    }

    public partial class Sub1
    {
        [JsonProperty("Velden")]
        public Sub1Velden Velden { get; set; }

        [JsonProperty("Sub2")]
        public Sub2 Sub2 { get; set; }
    }

    public partial class Sub2
    {
        [JsonProperty("Adres")]
        public Adres Adres { get; set; }

        [JsonProperty("Contact")]
        public Contact Contact { get; set; }
    }

    public partial class Adres
    {
        [JsonProperty("Element")]
        public AdresElement Element { get; set; }
    }

    public partial class AdresElement
    {
        [JsonProperty("Fields")]
        public Fields Fields { get; set; }
    }

    public partial class Fields
    {
        [JsonProperty("Land")]
        public string Land { get; set; }

        [JsonProperty("Ad")]
        public string Ad { get; set; }

        [JsonProperty("HmNr")]
        public long HmNr { get; set; }

        [JsonProperty("ZpCd")]
        public string ZpCd { get; set; }

        [JsonProperty("Rs")]
        public string Rs { get; set; }
    }

    public partial class Contact
    {
        [JsonProperty("Element")]
        public ContactElement Element { get; set; }
    }

    public partial class ContactElement
    {
        [JsonProperty("Velden")]
        public ElementVelden Velden { get; set; }
    }

    public partial class ElementVelden
    {
        [JsonProperty("Type")]
        public string Type { get; set; }

        [JsonProperty("Linkedin")]
        public string Linkedin { get; set; }
    }

    public partial class Sub1Velden
    {
        [JsonProperty("Vergelijking")]
        [JsonConverter(typeof(ParseStringConverter))]
        public long Vergelijking { get; set; }

        [JsonProperty("Nr")]
        [JsonConverter(typeof(ParseStringConverter))]
        public long Nr { get; set; }

        [JsonProperty("Nm")]
        public string Nm { get; set; }

        [JsonProperty("Type")]
        [JsonConverter(typeof(ParseStringConverter))]
        public long Type { get; set; }

        [JsonProperty("kvK")]
        [JsonConverter(typeof(ParseStringConverter))]
        public long KvK { get; set; }

        [JsonProperty("EmAd")]
        public string EmAd { get; set; }

        [JsonProperty("HoPa")]
        public Uri HoPa { get; set; }

        [JsonProperty("EmAm")]
        public string EmAm { get; set; }
    }

 


Andere blogartikelen

B2B E-commerce… Wakker worden!
Geschreven door
op dinsdag 28 juni 2022
Veel B2B-bedrijven in blijven hangen in; nauwelijks vindbare, verouderde B2B e-commerce websites met minimale conversiemogelijkheden en een betreurenswaardige gebruikerservaring. Zonde!
B2B Leadgeneratie: Alles wat je altijd al wilde weten!
Geschreven door
op maandag 27 juni 2022
B2B online leadgeneratie is het proces van het identificeren van de ideale klanten voor uw product of dienst, en hen vervolgens overhalen tot aankoop. Het is een essentiële activiteit voor B2B sales- en marketingteams.
Wat maakt een B2B webshop succesvol?
Geschreven door
op zondag 26 juni 2022
De opmars van de B2B webshop neemt toe. Regelmatig krijgen wij de vraag of er een groot verschil is tussen een consumentgerichte webshop en een puur B2B gedreven webshop. In deze blog leggen wij u uit hoe een B2B webshop succesvol kan zijn en worden.
Open Nieuwsbrief Inschrijving Footer

E-book

Zo wordt uw website een lead generator 
In 3 stappen uw website van visitekaartje naar salesfunnel

Download het E-book â€º