using System.Collections.Generic;
public static void Main()
JsonData jsonData = new JsonData();
string webString = jsonData.StreamJson("https://www.avvenireinc.com/wp-content/uploads/2018/10/technologies.json");
string result = jsonData.deserializeJson(webString);
Console.WriteLine(result);
string StreamJson(string url);
string deserializeJson(string webString);
public class JsonData: IJsonData, IGetJsonData
public string StreamJson(string url)
DisplayError error = new DisplayError();
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream responseStream = response.GetResponseStream();
using (StreamReader readerStream = new StreamReader(responseStream, Encoding.GetEncoding("utf-8")))
webString = readerStream.ReadToEnd();
public string deserializeJson(string webString)
DisplayError error = new DisplayError();
List<Metadata> listOfTypes = new List<Metadata>();
dynamic jsonObj = JsonConvert.DeserializeObject(webString);
foreach (var jsonSet in jsonObj)
Metadata type = new Metadata
Type = jsonSet["metadata"]["type"]
string langString = "Language: \r\n";
string frameWorkString = "Framework: \r\n";
if (listOfTypes.Count > 0)
foreach (Metadata md in listOfTypes)
if (md.Type == "Language")
langString = langString + md.Name + "\r\n";
if (md.Type == "Framework")
frameWorkString = frameWorkString + md.Name + "\r\n";
Console.WriteLine("\r\nJSON data did not contain any of the specified identifiers or is not formatted properly.");
return langString + "\r\n" + "\r\n" + frameWorkString;
public class DisplayError
public void ShowErrors(Exception ex)
Console.WriteLine("\r\n" + ex.Message);
public string Name { get; set; }
public string Type { get; set; }