What is JSON?

JSON (JavaScript Object Notation) is a way to store information in an organized, easy-to-access manner.

Why JSON?

JSON provides faster and asynchronous data loading without delaying page rendering.

JSON Free Web Service Providers

Have a look at the site.
In this article, I will show a sample program to read a random quantum number from a site that provides JSON Service and after fetching the data, we will de-serialize it into an object.
Firstly, create a console application and install Newtonsoft.JSON using Package Manager Console.
PM> install-package Newtonsoft.Json
I’ll call the link from the program to fetch the random number and then we will de-serialize.
When you try to access the above link, you should be able to see the data something like the following:
  1. {
  2. "type": "uint8",
  3. "length": 1,
  4. "data": [52],
  5. "success": true
  6. }
We will create a class as shown below which will be used for holding de-serialized value.
  1. public class QuantumRandomNumber
  2. {
  3. public string type
  4. {
  5. get;
  6. set;
  7. }
  8. public string length
  9. {
  10. get;
  11. set;
  12. }
  13. public List < string > data
  14. {
  15. get;
  16. set;
  17. }
  18. public string success
  19. {
  20. get;
  21. set;
  22. }
  23. }
For downloading and de-serializing JSON, we will use the following method:
  1. private static T _download_serialized_json_data < T > (string url) where T: new()
  2. {
  3. using(var w = new System.Net.WebClient())
  4. {
  5. var json_data = string.Empty;
  6. // attempt to download JSON data as a string
  7. try
  8. {
  9. Console.WriteLine("Started downloading data");
  10. json_data = w.DownloadString(url);
  11. Console.WriteLine("Completed downloading");
  12. }
  13. catch (Exception)
  14. {}
  15. // if string with JSON data is not empty, deserialize it to class and return its instance
  16. return !string.IsNullOrEmpty(json_data) ? JsonConvert.DeserializeObject < T > (json_data) : new T();
  17. }
  18. }
Now, Call the URL
  1. static void Main(string[] args)
  2. {
  3. var url = "https://qrng.anu.edu.au/API/jsonI.php?length=1&type=uint8";
  4. var t = _download_serialized_json_data < QuantumRandomNumber > (url);
  5. Console.WriteLine("Quantum Number details are:");
  6. Console.WriteLine("Quantum Number :" + t.data[0].ToString());
  7. Console.WriteLine("Quantum Number Type:" + t.type);
  8. Console.WriteLine("Quantum Number Length:" + t.length);
  9. Console.ReadLine();
  10. }
Entire Program
  1. using Newtonsoft.Json;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. namespace QuantumNumber
  8. {
  9. class Program
  10. {
  11. public class QuantumRandomNumber
  12. {
  13. public string type
  14. {
  15. get;
  16. set;
  17. }
  18. public string length
  19. {
  20. get;
  21. set;
  22. }
  23. public List < string > data
  24. {
  25. get;
  26. set;
  27. }
  28. public string success
  29. {
  30. get;
  31. set;
  32. }
  33. }
  34. static void Main(string[] args)
  35. {
  36. var url = "https://qrng.anu.edu.au/API/jsonI.php?length=1&type=uint8";
  37. var t = _download_serialized_json_data < QuantumRandomNumber > (url);
  38. Console.WriteLine("Quantum Number details are:");
  39. Console.WriteLine("Quantum Number :" + t.data[0].ToString());
  40. Console.WriteLine("Quantum Number Type:" + t.type);
  41. Console.WriteLine("Quantum Number Length:" + t.length);
  42. Console.ReadLine();
  43. }
  44. private static T _download_serialized_json_data < T > (string url) where T: new()
  45. {
  46. using(var w = new System.Net.WebClient())
  47. {
  48. var json_data = string.Empty;
  49. // attempt to download JSON data as a string
  50. try
  51. {
  52. Console.WriteLine("Started downloading data");
  53. json_data = w.DownloadString(url);
  54. Console.WriteLine("Completed downloading");
  55. }
  56. catch (Exception)
  57. {}
  58. // if string with JSON data is not empty, deserialize it to class and return its instance
  59. return !string.IsNullOrEmpty(json_data) ? JsonConvert.DeserializeObject < T > (json_data) : new T();
  60. }
  61. }
  62. }
  63. }
Output
output
JSON is a faster way to load data. For more details about JSON, click on the link.