Cannot access child value on Newtonsoft.Json.Linq.JProperty

deserialization, json.net, twitter, vb.net

Solution

I figured it out

If item.name = "source" then
    searchterm = item.last.selecttoken("matching_rules").first.item("value").tostring
End if

Problem

I am trying to parse the json values from the following stream: ``` {"id": "tag:search.xxxxx.com,2005:xxxxxxxxxxx"} {"body": "acordei (:"} {"verb": "post"} {"link": "http://xxxxx.com/rohanaf_/xxxxxxxxxx/xxxxxxxxx"} {"generator": { "link": "http://xxxxx.com", "displayName": "web" }} {"postedTime": "2012-03-31T19:23:51.000Z"} {"provider": { "link": "http://www.xxxxx.com", "displayName": "xxxxxx", "objectType": "service" }} {"object": { "summary": "acordei (:", "id": "object:search.xxxxxx.com,2005:xxxxxxxxxxxx", "link": "http://xxxxxxx.com/rohanaf_/statuses/xxxxxxxxxxxx", "postedTime": "2012-03-31T19:23:51.000Z", "objectType": "note" }} {"actor": { "summary": "- namorada da @srtameiga fim. ♥", "twitterTimeZone": "Brasilia", "friendsCount": 197, "location": { "displayName": "Porto Alegre ", "objectType": "place" }, "link": "http://www.xxxxxxxxxx.com/rohanaf_", "postedTime": "2010-03-31T20:12:49.000Z", "image": "http://a0.twimg.com/profile_images/xxxxxxxxxxx/Foto1436_normal.jpg", "links": [ { "rel": "me", "href": null } ], "listedCount": 3, "id": "id:xxxxxxxxxxx.com:xxxxxxxxx", "languages": [ "pt" ], "utcOffset": "-10800", "followersCount": 347, "preferredUsername": "rohanaf_", "displayName": ", feia ;$", "statusesCount": 48412, "objectType": "person" }} { "xxxxxx_entities": { "urls": [], "hashtags": [], "user_mentions": [] }} {"objectType": "activity"} {"source": { "language": { "value": "fr" }, "matching_rules": [ { "value": "lang:fr", "tag": null } ], }} ``` I tried the following options using JSON.NET and works mostly but missing a couple of fields (source: and all its children including their children). ("source")("matching_rules")("tag") ..etc ``` Dim results as List(Of JToken) = jobj.Children().ToList For each item as JProperty In results item.CreateReader() If item.name ="id" then id = item.value End If If item.name ="actor" then author = item.Value("displayName").ToString End If If item.name="source" then Dim gList as IList(Of JToken)= item("matching_rules").Children.ToList End If Next ``` I am trying to get all the children values for that property name source. Now if I use JsonTextReader I can read through everything but this is tedious and prone to errors. Any suggestions appreciated.

Original source