Q:

C# JSON .NET deserialize with JsonObjects in another object

I've created a PHP interface that connects to a database, by encoding JSON in PHP and decoding it on the C# using JSON .NET.
Everything has worked fine so far.
I have a few classes that I use, which I all created to be used with JSON .NET

{
  "ReceptId": "1",
  "Naam": "Rijst met ragout",
  "GramPerPersoon": "280",
  "Type": "Eten",
  "Instructies": [
    "Maak rijst warm",
    "Doe ragout op de rijst"
  ],
  "Benodigdheden": [{
    "Hoeveelheid": "70",
    "Eenheid": "gram",
    "Ingredient": {
      "Ingredient_id": "1",
      "Naam": "Rijst",
      "Beschrijving": "Rijst behoort zoals alle granen tot de grassenfamilie. Rijst is het belangrijkste voedsel voor een groot deel van de wereldbevolking, vooral in de warmere streken.",
      "Energie": "355",
      "Vetten": "0.5",
      "VerzadigdeVetten": "0.2",
      "KoolHydraten": "79",
      "Eiwitten": "7.5"
    }
  }, {
    "Hoeveelheid": "30",
    "Eenheid": "gram",
    "Ingredient": {
      "Ingredient_id": "2",
      "Naam": "Ragout",
      "Beschrijving": "Ragout (Nederlands-Nederlands) of vol-au-vent (Vlaams) is van oorsprong een gerecht dat bestaat uit stukjes gesneden vlees, gevogelte of vis in saus.",
      "Energie": "98",
      "Vetten": "5.5",
      "VerzadigdeVetten": "2.2",
      "KoolHydraten": "3.8",
      "Eiwitten": "8.3"
    }
  }]
}

The problem is that the Ingredient object is always NULL, even when I serialize the object itself.
The classes have been built very simplistic, using C# properties to store variables.
Normal lists of strings have worked fine previously, for example Instructies.
The class I'm trying to parse is Recept, which I do like this:
Recept recept = JsonConvert.DeserializeObject(json);
With JSON being the JSON input you can view above here.
Recept contains a few properties, which all work fine except for Benodigdheden.
[JsonProperty]
    public List<Benodigdheid> Benodigdheden
    {
        get;
        private set;
    }

    [JsonProperty]
    public List<string> Instructies
    {
        get;
        private set;
    }

    [JsonProperty]
    public int ReceptId
    {
        get;
        private set;
    }

    [JsonProperty]
    public string Naam
    {
        get;
        private set;
    }

    [JsonProperty]
    public ReceptType Type
    {
        get;
        private set;
    }

    [JsonProperty]
    public int GramPerPersoon
    {
        get;
        private set;
    }

    public Recept(int id, string naam, ReceptType receptType, int gramPP, List<string> instructies, List<Benodigdheid> benodigdheden)
    {
        this.ReceptId = id;
        this.Naam = naam;
        this.Type = receptType;
        this.GramPerPersoon = gramPP;
        this.Instructies = instructies;
        getBenodigdHeden();
    }

The Benodigdheid class contains only 3 properties, which are:
 [JsonProperty]
    public Ingredient Ingredient
    {
        get;
        private set;
    }

    [JsonProperty]
    public int Hoeveelheid
    {
        get;
        private set;
    }

    [JsonProperty]
    public string Eenheid
    {
        get;
        private set;
    }

    public Benodigdheid(Ingredient ingredient, int hoeveelheid, string eenheid)
    {
        this.Ingredient = ingredient;
        this.Hoeveelheid = hoeveelheid;
        this.Eenheid = eenheid;
    }

Then there is the last class named Ingredient (which means the same in english)
    [JsonProperty]
    public int Ingredient_id
    {
        get;
        private set;
    }

    [JsonProperty]
    public string Naam
    {
        get;
        private set;
    }

    [JsonProperty]
    public string Beschrijving
    {
        get;
        private set;
    }

    [JsonProperty]
    public float Energie
    {
        get;
        private set;
    }

    [JsonProperty]
    public float Vetten
    {
        get;
        private set;
    }

    [JsonProperty]
    public float VerzadigdeVetten{
        get;
        private set;
    }

    [JsonProperty]
    public float KoolHydraten
    {
        get;
        private set;
    }

    [JsonProperty]
    public float Eiwitten
    {
        get;
        private set;
    }

    public Ingredient(int id, string naam, string beschrijving, float energie, float vetten, float verzadigde_vetten, float koolhydraten, float eiwitten) {
        this.Ingredient_id = id;
        this.Naam = naam;
        this.Beschrijving = beschrijving;
        this.Energie = energie;
        this.Vetten = vetten;
        this.VerzadigdeVetten = verzadigde_vetten;
        this.KoolHydraten = koolhydraten;
        this.Eiwitten = eiwitten;
    }

A:

You do not need to decorate your c# class with these attributes. from the json you posted, with http://json2csharp.com/, I've generated theses classe, which I think it is enough to you deserialize your json data.
public class Ingredient
{
    public string Ingredient_id { get; set; }
    public string Naam { get; set; }
    public string Beschrijving { get; set; }
    public string Energie { get; set; }
    public string Vetten { get; set; }
    public string VerzadigdeVetten { get; set; }
    public string KoolHydraten { get; set; }
    public string Eiwitten { get; set; }
}

public class Benodigdheden
{
    public string Hoeveelheid { get; set; }
    public string Eenheid { get; set; }
    public Ingredient Ingredient { get; set; }
}

public class RootObject
{
    public string ReceptId { get; set; }
    public string Naam { get; set; }
    public string GramPerPersoon { get; set; }
    public string Type { get; set; }
    public List<string> Instructies { get; set; }
    public List<Benodigdheden> Benodigdheden { get; set; }
}

