Q:

Can't access Second Level of JSON String

For a programming school project, I am making a weather app where I need to display the current temperature. In the JSON string the current temp is in the second level which I can't figure out how to access. In future I would also like to access the hourly and daily forecasts included in this string- if you have any ideas for how to do that. Any help would be appreciated. Here is my data:
{
    "latitude":-    32.9283,
    "longitude":151.7817,
    "timezone":"Australia/Sydney",
    "currently":{
        "time":1546405401,
        "summary":"Clear",
        "icon":"clear-day",
        "precipIntensity":0,
        "precipProbability":0,
        "temperature":93.03,
        "apparentTemperature":93.03,
        "dewPoint":58.07,
        "humidity":0.31,
        "pressure":1009.17,
        "windSpeed":14.77,
        "windGust":19.66,
        "windBearing":68,
        "cloudCover":0,
        "uvIndex":7,
        "visibility":7.75,
        "ozone":276.4
    },
    "hourly":{
        "summary":"Clear throughout the day.",
        "icon":"clear-day",
        "data":[
            {
                "time":1546405200,
                "summary":"Clear",
                "icon":"clear-day",
                "precipIntensity":0,
                "precipProbability":0,
                "temperature":93.25,
                "apparentTemperature":93.25,
                "dewPoint":57.89,
                "humidity":0.31,
                "pressure":1009.18,
                "windSpeed":14.78,
                "windGust":19.53,
                "windBearing":68,
                "cloudCover":0,
                "uvIndex":7,
                "visibility":7.58,
                "ozone":276.43
            },
            {
                "time":1546408800,
                "summary":"Clear",
                "icon":"clear-day",
                "precipIntensity":0,
                "precipProbability":0,
                "temperature":89.44,
                "apparentTemperature":89.44,
                "dewPoint":60.5,
                "humidity":0.38,
                "pressure":1008.99,
                "windSpeed":14.58,
                "windGust":21.84,
                "windBearing":66,
                "cloudCover":0,
                "uvIndex":4,
                "visibility":10,
                "ozone":275.8
            },
            ...

Here is my code:
Imports System.IO
Imports System.Net
Imports System.Drawing
Imports System.Web.Script.Serialization
Imports Newtonsoft.Json
Imports Newtonsoft.Json.Linq
    Dim request As HttpWebRequest
    Dim response As HttpWebResponse = Nothing
    Dim reader As StreamReader

    request = DirectCast(WebRequest.Create("https://api.darksky.net/forecast/412498ac9648999c8185723817a897d3/-32.9283,151.7817"), HttpWebRequest)
    response = DirectCast(request.GetResponse(), HttpWebResponse)
    reader = New StreamReader(response.GetResponseStream())

    Dim data As String
    data = reader.ReadToEnd()

    Dim jsonObject As JObject = JObject.Parse(data)
    MessageBox.Show(jsonObject.SelectToken("currently").ToString)
    Dim JsonArray As JArray = JArray.Parse(jsonObject.SelectToken("currently").ToString)
    MessageBox.Show(jsonObject.SelectToken("temperature").ToString)

Error Message:

Newtonsoft.Json.JsonReaderException: 'Error reading JArray from       JsonReader. Current JsonReader item is not an array: StartObject. Path '',      line 1, position 1.'

A:

Like the error says "currently" is not an array, it's an object. Arrays are denoted using square brackets [] whereas objects use curly braces {}.
Try this instead:
Dim currentlyObject As JObject = DirectCast(jsonObject("currently"), JObject)

'Example usage.
MessageBox.Show(currentlyObject("temperature"))

