我有一个JSON结果,其中包含一系列消息:
{
"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"
}
}
}
这是我的代码:
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);
}
}
}
我不确定如何提取嵌套在根JSON对象中的JSON对象?
我也试过没有运气:
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]);
}
}
答案 0 :(得分:2)
var list = messages["messages"];
我可能会将您的messages
变量重命名为data
,以便更具描述性。
P.S。我从未见过我的姓氏作为名字!
答案 1 :(得分:2)
为什么不直接使用JsonObject.Parse(e.Result)
?
您无需使用Encoding.UTF8.GetBytes
或MemoryStream
。
然后你可以按照@John的说明从JSON对象中获取数据。
答案 2 :(得分:1)
使用http://json2csharp.com/获取csharp对象并使用序列化/反序列化JSON数据。