Imports System.Collections.Generic
Imports Newtonsoft.Json.Linq
Dim results = "{""Meta Data"": {""1. Information"": ""Daily Prices (open, high, low, close) and Volumes"",""2. Symbol"": ""PKG"",""3. Last Refreshed"": ""2021-02-16"",""4. Output Size"": ""Compact"",""5. Time Zone"": ""US/Eastern""},""Time Series (Daily)"": {""2021-02-16"": {""1. open"": ""133.4500"",""2. high"": ""133.5650"",""3. low"": ""131.5000"",""4. close"": ""133.0400"",""5. volume"": ""638371""},""2021-02-12"": {""1. open"": ""131.0400"",""2. high"": ""133.9200"",""3. low"": ""131.0400"",""4. close"": ""133.1800"",""5. volume"": ""562984""},""2021-02-11"": {""1. open"": ""133.9900"",""2. high"": ""134.4900"",""3. low"": ""130.3700"",""4. close"": ""131.1700"",""5. volume"": ""768588""}}}"
Dim obj = JObject.Parse(results)
Dim meta = JsonConvert.DeserializeObject(Of MetaData)(obj.First.First.ToString())
Dim dailyTimeSeries = JsonConvert.DeserializeObject(Of Dictionary(Of DateTime, TimeSeriesData))(obj.Last.First.ToString())
Console.WriteLine(meta.Information)
Console.WriteLine("{0} opened at {1}", dailyTimeSeries.Keys.First, dailyTimeSeries(dailyTimeSeries.Keys.First).Open)
<JsonProperty("1. Information")>
Public Property Information As String
<JsonProperty("2. Symbol")>
Public Property Symbol As String
<JsonProperty("3. Last Refreshed")>
Public Property LastRefreshed As String
<JsonProperty("4. Output Size")>
Public Property OutputSize As String
<JsonProperty("5. Time Zone")>
Public Property TimeZone As String
Public Class TimeSeriesData
<JsonProperty("1. open")>
Public Property Open As Decimal
<JsonProperty("2. high")>
Public Property High As Decimal
Public Property Low As Decimal
<JsonProperty("4. close")>
Public Property Close As Decimal
<JsonProperty("5. volume")>
Public Property Volume As Integer