json.netAan de slag met json.net


Opmerkingen

[Json.NET] [1] is een populair, krachtig JSON-framework voor .NET. Het is een .Net- assemblage die een breed scala aan klassen en methoden blootlegt om gemeenschappelijke taken met json-gegevens te helpen uitvoeren.

Dit omvat de mogelijkheid om dingen te doen zoals het serialiseren van json-gegevens in klasse-instanties, gegevensbestanden en het deserialiseren van json-gegevens die afkomstig kunnen zijn van veel verschillende bronnen, zoals een API-eindpunt of .json gegevensbestanden.

versies

Versie Publicatiedatum
Json.NET 9.0.1 (huidige versie) 2016/06/22
Json.NET 8.0.3 2016/03/14
Json.NET 8.0.2 2016/01/09
Json.NET 8.0.1 2015/12/29
Json.NET 7.0.1 2015/06/22
Json.NET 6.0.8 2015/01/11
Json.NET 6.0.7 2014/12/23
Json.NET 6.0.6 2014/10/24
Json.NET 6.0.5 2014/09/06
Json.NET 6.0.4 2014/08/03
Json.NET 6.0.3 2014/04/27
Json.NET 6.0.2 2014/03/30
Json.NET 6.0.1 2014/02/01
Json.NET 5.0.8 2013/10/17
Json.NET 5.0.7 2013/10/14
Json.NET 5.0.6 2013/06/06
Json.NET 5.0.5 2013/05/08
Json.NET 5.0.4 2013/04/25
Json.NET 5.0.3 2013/04/14
Json.NET 5.0.2 2013/04/08
Json.NET 5.0.1 2013/04/07
Json.NET 4.5.11 2012/11/20
Json.NET 4.5.10 2012-10-07
Json.NET 4.5.9 2012-09-08
Json.NET 4.5.8 2012-08-04
Json.NET 4.5.7 2012-06-09
Json.NET 4.5.6 2012-05-30
Json.NET 4.5.5 2012-05-08
Json.NET 4.5.4 2012-04-24
Json.NET 4.5.3 2012-04-13
Json.NET 4.5.2 2012-04-11
Json.NET 4.5.1 2012-03-20
Json.NET 4.0.8 2012-02-12
Json.NET 4.0.7 2012-01-24
Json.NET 4.0.6 2012-01-23
Json.NET 4.0.5 2011-12-10
Json.NET 4.0.4 2011-11-19
Json.NET 4.0.3 2011-10-02
Json.NET 4.0.2 2011-04-23
Json.NET 4.0.1 2011-04-22
Json.NET 3.5.8 2011-01-08

Hoe JSON-gegevens te deserialiseren naar Object met behulp van Json.Net in C #

In het volgende voorbeeld wordt getoond hoe u een JSON-tekenreeks in een object (bijvoorbeeld in een instantie van een klasse) kunt deserialiseren.

using System;
using System.Collections.Generic;
using Newtonsoft.Json;
                    
public class Program
{
    public class Employee
    {
        public string FirstName { get; set; }
        public string LastName { get; set; }
        public bool IsManager { get; set; }
        public DateTime JoinedDate { get; set; }
        public IList<string> Titles { get; set; }
    }
    
    public static void Main()
    {
        string json = @"{
                          'FirstName': 'Shiva',
                          'LastName': 'Kumar',
                          'IsManager': true,
                          'JoinedDate': '2014-02-10T00:00:00Z',
                          'Titles': [
                            'Sr. Software Engineer',
                            'Applications Architect'
                          ]
                        }";
        
        Employee employee = JsonConvert.DeserializeObject<Employee>(json);

        Console.WriteLine(employee.FirstName);
        Console.WriteLine(employee.LastName);
        Console.WriteLine(employee.JoinedDate);
        foreach (string title in employee.Titles)
        {
            Console.WriteLine("  {0}", title);    
        }
    }
}
 

Als u dit console-programma uitvoert, is de uitvoer van de verschillende Console.WriteLine instructies als volgt.

Shiva
Kumar
2/10/2014 12:00:00 AM
  Sr. Software Engineer
  Applications Architect
 

Weinig dingen om op te merken

  1. De volgende regel voert de daadwerkelijke deserialisatie van de gegevens in de json-string uit naar de employee van de klasse Employee .

Employee employee = JsonConvert.DeserializeObject<Employee>(json);

  1. Aangezien employee.Titles type List<string> is, gebruiken we de foreach lusconstructie om elk item in die List te doorlopen.

Hoe Json.Net in Visual Studio-projecten te installeren

U kunt Json.Net op 1 of 2 manieren in uw Visual Studio-project installeren.

Installeer Json.Net met behulp van de Package Manager-console.

  1. Open het venster Pakketbeheerconsole in Visual Studio door de pakketbeheerconsole in het vak Snel starten te typen en te selecteren

voer hier de afbeeldingsbeschrijving in

of door te klikken op Beeld -> Andere Windows -> Pakketbeheer-console .

  1. Zodra de Package Manager-console zichtbaar is, selecteert u het project in uw oplossing, waarin u Json.Net wilt installeren, door het te selecteren in de vervolgkeuzelijst Standaardproject .

voer hier de afbeeldingsbeschrijving in

  1. Typ nu de volgende opdracht en druk op enter.

Install-Package Newtonsoft.Json

  1. Hiermee wordt de nieuwste versie van Json.Net geïnstalleerd. U ziet de voortgang van de installatie in de Package Manager-console. Als het lukt, krijgt u het bericht dat het met succes is geïnstalleerd in uw geselecteerde project.

voer hier de afbeeldingsbeschrijving in

  1. Na succesvolle installatie kunt u de Json.Net-vergadering zien in de referenties in uw geselecteerde project. De naam van de Json.Net-vergadering is Newtonsoft.Json

voer hier de afbeeldingsbeschrijving in

Json.Net is nu klaar voor gebruik in uw project!

Installeer Json.Net met Visual Studio Solution Explorer.

U kunt json.net ook installeren met Solution Explorer in Visual Studio.

  1. Klik met de rechtermuisknop op het knooppunt Verwijzingen in uw project en klik op Nuget-pakketten beheren ...

  2. Zorg ervoor dat Online is geselecteerd in het linkerdeelvenster in het dialoogvenster Nuget Package Manager . Typ Json.Net in het zoekvak rechtsboven. Hiermee wordt het Json.Net Nuget-pakket in het midden van de zoekresultaten weergegeven.

  3. Klik op de knop Installeren .

voer hier de afbeeldingsbeschrijving in

  1. U ziet de voortgang van de installatie in het voortgangsvenster dat verschijnt.

voer hier de afbeeldingsbeschrijving in

  1. Nadat de installatie is voltooid, ziet u een groen vinkje naast het Json.Net-pakket in het dialoogvenster Nuget Package Manager .

voer hier de afbeeldingsbeschrijving in

  1. U ziet ook de Newtonsoft.Json vergadering in het knooppunt Verwijzingen in uw oplossingsverkenner voor uw geselecteerde project.

voer hier de afbeeldingsbeschrijving in

Hiermee is de installatie van Json.Net voltooid. U bent nu klaar om het in uw project te gebruiken om verschillende bewerkingen op json-gegevens uit te voeren.

Een object serialiseren naar JSON met Json.Net in C #

Het volgende voorbeeld laat zien hoe u Json.Net kunt gebruiken om de gegevens in een instantie van een C # Object te serialiseren naar JSON-tekenreeks.

using System;
using System.Collections.Generic;
using Newtonsoft.Json;

public class Employee
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public bool IsManager { get; set; }
    public DateTime JoinedDate { get; set; }
    public IList<string> Titles { get; set; }
}
                    
public class Program
{
    public static void Main()
    {
        Employee employee = new Employee
        {
            FirstName = "Shiva",
            LastName = "Kumar",            
            IsManager = true,
            JoinedDate = new DateTime(2013, 1, 20, 0, 0, 0, DateTimeKind.Utc),
            Titles = new List<string>
            {
                "Sr. Software Engineer",
                "Applications Architect"
            }
        };

        string json = JsonConvert.SerializeObject(employee, Formatting.Indented);


Console.WriteLine(json);
        
    }
}
 

Als u dit console-programma uitvoert, is de uitvoer van de Console.WriteLine(json)

{
  "FirstName": "Shiva",
  "LastName": "Kumar",
  "IsManager": true,
  "JoinedDate": "2013-01-20T00:00:00Z",
  "Titles": [
    "Sr. Software Engineer",
    "Applications Architect"
  ]
}
 

Weinig dingen om op te merken

  1. De volgende regel voert de daadwerkelijke serialisatie van de gegevens in de instantie van de employee in een json-reeks

    string json = JsonConvert.SerializeObject(employee, Formatting.Indented);

  2. De parameter Formatting.Indented vertelt Json.Net om de gegevens met inspringing en nieuwe regels te serialiseren. Als u dat niet doet, is de geserialiseerde string één lange string zonder inspringing of regeleinden.