In this article I will explain with an example, how to use the Newtonsoft.Json.JsonConvert library for Serializing and Deserializing JSON using C# and VB.Net.
The JSON string will be first downloaded from an API using WebClient class and then will be deserialized to JSON object using the Deserialize function of the JSON.Net library.
Finally, the JSON object will be again serialized to JSON string using the Serialize function of the JSON.Net library in ASP.Net using C# and VB.Net.
Download JSON.Net library
The JSON.Net library is available for download from the following URL.
The JSON string returned from the API
The following JSON string is returned from the ASPSnippets Test API.
[
{
"CustomerId":1,
"Name":"John Hammond",
"Country":"United States"
},
{
"CustomerId":2,
"Name":"Mudassar Khan",
"Country":"India"
},
{
"CustomerId":3,
"Name":"Suzanne Mathews",
"Country":"France"
},
{
"CustomerId":4,
"Name":"Robert Schidner",
"Country":"Russia"
}
]
Namespaces
You will need to import the following namespaces.
C#
using System.Net;
using Newtonsoft.Json;
VB.Net
Imports System.Net
Imports Newtonsoft.Json
Property Class
The following property class will be used for deserializing the JSON string.
C#
public class Customer
{
public int CustomerId { get; set; }
public string Name { get; set; }
public string Country { get; set; }
}
VB.Net
Public Class Customer
Public Property CustomerId As Integer
Public Property Name As String
Public Property Country As String
End Class
Serializing and Deserializing JSON in C# and VB.Net
Inside the Page Load event, first the JSON string is downloaded from an API using DownloadString method of the WebClient class.
Note: SecurityProtocol needs to be set to TLS 1.2 (3072) in order to call an API.
Then first, the JSON string is deserialized to JSON object using the Deserialize function of the JSON.Net library.
Finally, the JSON object will be again serialized to JSON string using the Serialize function of the JSON.Net library.
C#
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
//Fetch the JSON string from URL.
ServicePointManager.Expect100Continue = true;
ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072;
string json = (new WebClient()).DownloadString("https://raw.githubusercontent.com/aspsnippets/test/master/Customers.json");
//Deserialize the JSON string.
List<Customer> customers = JsonConvert.DeserializeObject<List<Customer>>(json);
//Serialize the JSON string.
json = JsonConvert.SerializeObject(customers);
}
}
VB.Net
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
If Not Me.IsPostBack Then
'Fetch the JSON string from URL.
ServicePointManager.Expect100Continue = True
ServicePointManager.SecurityProtocol = CType(3072, SecurityProtocolType)
Dim json As String = (New WebClient).DownloadString("https://raw.githubusercontent.com/aspsnippets/test/master/Customers.json")
'Deserialize the JSON string.
Dim customers As List(Of Customer) = JsonConvert.DeserializeObject(Of List(Of Customer))(json)
'Serialize the JSON string.
json = JsonConvert.SerializeObject(customers)
End If
End Sub
Screenshots
Deserializing to JSON object
Serializing to JSON string
Downloads