I have a JSON result that has an array of messages:
{ "messages": [ { "message": { "for_user_login": null, "message_type": "normal", "twitter_in_reply_to_screen_name": null, "avatar_url": "http://a2.twimg.com/profile_images/82661470/marshallwithhatbig_normal.jpg", "created_at": "2010-11-16T18:50:33Z", "body": "Watch the Web 2.0 Summit Live on Video, for Free: http://me.lt/24mH (tickets cost $Ks, content is good)", "filtered": false, "future": false, "in_reply_to_user_login": null, "twitter_user_id": 818340, "updated_at": "2010-11-16T18:50:33Z", "user_login": "marshallk", "group_ids": null, "stock_ids": "8030", "twitter_created_at": "2010-11-16T18:50:27Z", "id": 2124647, "mention_ids": null, "twitter_in_reply_to_user_id": null, "platform_user_login": null, "twitter_status_id": 4607245530697728, "user_id": null, "for_user_id": null, "recommended": false, "private_relations": false, "investor_relations": false, "forex": false, "in_reply_to_user_id": null, "stock_symbols": "KS", "twitter_in_reply_to_status_id": null, "twitter_source": "<a href=\"http://rockmelt.com\" rel=\"nofollow\">RockMelt</a>", "chart": false, "in_reply_to_message_id": null, "message_source": "twitter" } } }
here is my code:
void webClient_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e) { using (var stream = new MemoryStream(Encoding.UTF8.GetBytes(e.Result))) { JsonObject messages = (JsonObject)JsonObject.Load(stream); MessageBox.Show(messages.ToString(), "Data Passed", MessageBoxButton.OK); } } }
I'm not sure how I can pull out a JSON object that is nested inside the root JSON object?
I'm also out of luck:
JsonObject jsonString = (JsonObject)JsonObject.Parse(e.Result); JsonArray messages = (JsonArray)jsonString["messages"]["message"]; foreach (JsonObject message in messages) { foreach (string body in message.Keys) { Debug.WriteLine(body); Debug.WriteLine(message[body]); } }