JsonConvert: Newtonsoft “From” object “to” Json (e ritorno)

Grazie a Newtonsoft è possibile trovare la soluzione alla domanda “object to json newtonsoft c#” posta diverse volte nelle query di google, in forum di discussione e/o nei social. L’operazione è davvero semplice e basta usare due metodi forniti da JsonConvert dai rispettivi nomi SerializeObject() e DeserializeObject().

Newtonsoft.Json: Come installarlo

Per prima cosa -se non lo avete già fatto- dovete installare Newtonsoft.Json all’interno del vostro progetto e per farlo vi basterà lanciare il seguente comando dal Package Manager

Install-Package Newtonsoft.Json -Version 12.0.1

Attenzione: La versione 12.0.1 è quella più recente presente sulla pagina del pacchetto Newtonsoft.Json (nuget.org) però per una serie di compatibilità con altri pacchetti presenti nel mio csproj ho dovuto mettere la 11.0.2

JsonConvert: Serializing & Deserializing JSON

Per vedere un esempio pratica di JsonConvert senza troppi esempi ho deciso di creare una mia classe di esempio (con annesso “Joke serale” per chi lo capirà) e di mostrare subito i metodi coinvolti. UserDetail.cs

1
2
3
4
5
6
7

 public class UserDetails{
            public string Address { get; set; }
            public string PhoneNumber { get; set; }
            public int YearOfBirth { get; set; }
        }

GetJsonFromUserDetails

1
2
3
4
5
6
7

        public string GetJsonFromUserDetails(UserDetails detail)
        {
            string result = JsonConvert.SerializeObject(detail);
            return result;
        }

GetUserDetailsFromJson

1
2
3
4
5
6
7

        public UserDetails GetUserDetailsFromJson(string json)
        {
            UserDetails result = JsonConvert.DeserializeObject<UserDetails>(json);
            return result;
        }

SerializeObject: Come Usarlo

Per prima cosa non resta creare l’istanza della nostra classe come riportato nel seguente codice sorgente

1
2
3
4
5
6
7
8

UserDetails details = new UserDetails()
            {
                Address = "corner of Grove Street and Bedford Street - New York",
                PhoneNumber = "555-555-555-555",
                YearOfBirth = 1994
            };

ed utilizzare la seguente istruzione al metodo appena scritto

1
2
3

string json = GetJsonFromUserDetails(details);

Il risultato ottenuto (ossia il json) sarà il seguente:

{“Address”:“corner of Grove Street and Bedford Street - New York”,“PhoneNumber”:“555-555-555-555”,“YearOfBirth”:1994}

Per ottenere una nuova istanza di UserDetails partendo dal json appena mostrato basterà utilizzare la seguente chiamata

1
2
3

UserDetails d = GetUserDetailsFromJson(json);

… semplice no?

Confessione (anzi confessioni) finali …
  1. Vi state chiedendo quale fosse lo scherzo espresso in partenza? L’indirizzo “corner of Grove Street and Bedford Street - New York” e l’anno 1994 sono legati alla serie televisiva Friends. SI tratta del luogo dell’edificio (se mai andrò a NY vorrò andare lì) e l’anno di uscita della prima stagione

  2. Il perché di questo articolo? Lo ammetto, anche io all’inizio cercavo continuamente “object to json newtonsoft c#" su google perchè mi dicmenticavo sempre il nome della classe JsonConvert.