Как я могу разобрать следующий JSON для Windows Phone 7? - PullRequest
4 голосов
/ 16 ноября 2010

У меня есть результат 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]);
                }
            }

Ответы [ 3 ]

2 голосов
/ 16 ноября 2010

Почему бы вам не использовать JsonObject.Parse(e.Result)?

Вам не нужно использовать Encoding.UTF8.GetBytes или MemoryStream.

И тогда вы сможете получать данные изнутри JSONобъект как заявлено @ Джоном.

2 голосов
/ 16 ноября 2010
var list = messages["messages"];

Возможно, я бы переименовал вашу messages переменную в data, чтобы она была более наглядной.

P.S. Я никогда не видел свою фамилию как имя!

1 голос
/ 02 апреля 2013

используется http://json2csharp.com/ для получения объекта csharp и используется для сериализации / десериализации данных JSON.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...