Merhaba,

Bazen size gelen json data bir servis sağlayıcıdan geliyorsa tamamını deserialize etmek nerede ise imkansız olur. Böyle bir durumda dynamic type'ini kullanarak ihtiyacınız olan veriye daha kolay ulaşabilirsiniz.

 dynamic dd = JsonConvert.DeserializeObject(txtResponseData.Text); 

 clsWeather_Forcast09_Result Weather_Forcast09_Result = new clsWeather_Forcast09_Result(); 

 Weather_Forcast09_Result.Weather_Forcast = new List<clsWeather_Forcast09_Result.clsWeather_Forcast>();  

 clsWeather_Forcast09_Result.clsWeather_Forcast   Weather_Forcast = new clsWeather_Forcast09_Result.clsWeather_Forcast(); 

 foreach (dynamic forecastday in dd.forecast.simpleforecast.forecastday) 

 { 

     Weather_Forcast = new clsWeather_Forcast09_Result.clsWeather_Forcast(); 

     Weather_Forcast.ForcastDate = forecastday.date.day.ToString() + "/" + forecastday.date.month.ToString() + "/" + forecastday.date.year.ToString(); 

     Weather_Forcast.highCelsius = decimal.Parse(forecastday.high.celsius.ToString()); 

     Weather_Forcast.lowCelsius = decimal.Parse(forecastday.low.celsius.ToString()); 

     Weather_Forcast.highFahrenheit = decimal.Parse(forecastday.high.fahrenheit.ToString()); 

     Weather_Forcast.lowFahrenheit = decimal.Parse(forecastday.low.fahrenheit.ToString()); 

     Weather_Forcast09_Result.Weather_Forcast.Add(Weather_Forcast); 

 }

Bu yöntem c# ta tamamen ihtiyaç çözüyor. Ancak vb.net te yine tökezlerseniz. şu yöntemi kullanabilirsiniz.Kaynak için http://stackoverflow.com/questions/20079177/deserializing-json-in-visual-basic bakabilirsiniz. Aşağıdaki kod bloğu size biraz uzun gelebilir. Parça paça dynamic vb typlerı ile ulaşmak istediğim noda ulaşıyorum. daha sonra bir dizi şeklindeki node dan for loop ile dönerek istediğim değerleri topluyorum. Çalışan bir koddur kendim kullandım.

Dim tempforecast = New With {Key .forecast = New Object} 

Dim sFile As String = SimpleTools.RWFile.ReadFile("c:\\testjson\\test.json") 

Dim root = JsonConvert.DeserializeAnonymousType(sFile, tempforecast) 

Dim tempsimpleforecast = New With {Key .simpleforecast = New Object} 

Dim forecast = JsonConvert.DeserializeAnonymousType(root.forecast.ToString(), tempsimpleforecast) 

Dim templstforecastday = New With {Key .forecastday = New Object} 

Dim simpleforecast = JsonConvert.DeserializeAnonymousType(forecast.simpleforecast.ToString(), templstforecastday) 

Dim lstforecastday = simpleforecast.forecastday 

'Dim com As String = post.com 

Dim Weather_Forcast09_Result As New clsWeather_Forcast_09.clsWeather_Forcast09_Result 

Dim Weather_Forcast As New clsWeather_Forcast_09.clsWeather_Forcast09_Result.clsWeather_Forcast 

'DirectCast(DirectCast(dd.forecast,Object).simpleforecast,Object).forecastday 

'For Each forecastday In dd.forecast.simpleforecast.forecastday 

For Each jforecastday In lstforecastday 

    Weather_Forcast = New clsWeather_Forcast_09.clsWeather_Forcast09_Result.clsWeather_Forcast() 

    'Dim tempforecastday = New With {Key .jforecastday = New Object} 

    'Dim forecastday = JsonConvert.DeserializeAnonymousType(jforecastday.ToString(), tempforecastday) 

    Dim tempDate = New With {Key .date = New Object, .high = New Object, .low = New Object} 

    Dim forecastday = JsonConvert.DeserializeAnonymousType(jforecastday.ToString(), tempDate) 

    Dim tempDateDetail = New With {Key .day = "", .month = "", .year = ""} 

    Dim fcDateDetail = JsonConvert.DeserializeAnonymousType(forecastday.date.ToString(), tempDateDetail) 

    Weather_Forcast.ForcastDate = fcDateDetail.day.ToString() + "/" + fcDateDetail.month.ToString() + "/" + fcDateDetail.year.ToString() 

    Dim temphighDetail = New With {Key .celsius = "", .fahrenheit = ""} 

    Dim highDetail = JsonConvert.DeserializeAnonymousType(forecastday.high.ToString(), temphighDetail) 

    Dim templowDetail = New With {Key .celsius = "", .fahrenheit = ""} 

    Dim lowDetail = JsonConvert.DeserializeAnonymousType(forecastday.low.ToString(), templowDetail) 

    Weather_Forcast.highCelsius = Decimal.Parse(highDetail.celsius.ToString()) 

    Weather_Forcast.lowCelsius = Decimal.Parse(lowDetail.celsius.ToString()) 

    Weather_Forcast.highFahrenheit = Decimal.Parse(lowDetail.fahrenheit.ToString()) 

    Weather_Forcast.lowFahrenheit = Decimal.Parse(lowDetail.fahrenheit.ToString()) 

    Weather_Forcast09_Result.Add(Weather_Forcast) 

Next 

oWeather_Forcast_09.Weather_Forcast09_Result = Weather_Forcast09_Result

İyi çalışmalar.