Задать вопрос
Shatoidil
@Shatoidil

VK.API и С# как обработать ответ?

Я зеленый мягко говоря программер. Начал ковырять VK апи и возникла проблема, инфу по которой я не могу найти.

Как мне загнать в строку ответ, который я получаю от Вк?

namespace WindowsFormsApplication21
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            int appId = 4851252;
            string email = "моя почта@yandex.ru"; 
            string password = "пароль"; 
            Settings settings = Settings.All;
            var api = new VkApi();
            api.Authorize(appId, email, password, settings);
            var group = api.Utils.ResolveScreenName("etorostov");
            long id = group.Id.Value;
            int totalCount;
            int count = 1;
            var wallpost = api.Wall.Get(id, out totalCount, count);
        }
    }
}


Все оке, как я вижу по дебагу ответ я получаю в JSON/. var wallpost - мне возвращает класс как я понял? Как вот мне взять из ответа только то что мне нужно?

const string url = "https://api.vk.com/method/wall.get?owner_id=36578247&count=1&filter=all&v=5.9&access_token=6ac24ea999312c6d23da20290665d1d0ab4780fa50926570f3b55efc15218648bc1fd7707fbb3b0cf5392";
            const string json =
                @"{
                    'response': {
                      'count': 766,
                      'items': [
                        {
                          'id': 2107,
                          'from_id': 36578247,
                          'owner_id': 36578247,
                          'date': 1427839641,
                          'post_type': 'post',
                          'text': 'С повышением курса,цены на продукты первой необходимости значительно выросли. Не понятно почему и Российские производители так поднимают свои цены. Не ужели для того чтобы увеличить зарплату своих сотрудников? Я в этом сомневаюсь! Растет социальное неравенство! Все больше людей остается без работы! Да и что сейчас можно купить на прежнюю зарплату? Теперь не то что бы отдыхать, да и жить дорого!',
                          'post_source': {
                            'link': {
                              'url': 'http://kredit-otziv.ru/kurs-valyut/',
                              'title': 'Курс валют на завтра, сегодня, за неделю ЦБ РФ, Доллар, Евро и др.. | Кредит Отз...',
                              'description': ''
                            },
                            'type': 'widget',
                            'data': 'comments'
                          },
                          'comments': {
                            'count': 0,
                            'can_post': 0
                          },
                          'likes': {
                            'count': 0,
                            'user_likes': 0,
                            'can_like': 1,
                            'can_publish': 1
                          },
                          'reposts': {
                            'count': 0,
                            'user_reposted': 0
                          }
                        }
                      ]
                    }
                  }";


Вот ,что вижу в дебаге, как мне загнать в строку 'text' и 'title' ?
  • Вопрос задан
  • 621 просмотр
Подписаться 1 Оценить Комментировать
Решения вопроса 1
@VyacheslavGoryunov
Unity3D разработчик
Если правильно понял Ваш вопрос, то можно использовать библиотеку для работы с JSON, например json.codeplex.com.

В таком случае код будет выглядеть так
//в начале 
using Newtonsoft.Json.Linq;

//... где то в коде
const string json =
                @"{
                    'response': {
                      'count': 766,
                      'items': [
                        {
                          'id': 2107,
                          'from_id': 36578247,
                          'owner_id': 36578247,
                          'date': 1427839641,
                          'post_type': 'post',
                          'text': 'С повышением курса,цены на продукты первой необходимости значительно выросли. Не понятно почему и Российские производители так поднимают свои цены. Не ужели для того чтобы увеличить зарплату своих сотрудников? Я в этом сомневаюсь! Растет социальное неравенство! Все больше людей остается без работы! Да и что сейчас можно купить на прежнюю зарплату? Теперь не то что бы отдыхать, да и жить дорого!',
                          'post_source': {
                            'link': {
                              'url': 'http://kredit-otziv.ru/kurs-valyut/',
                              'title': 'Курс валют на завтра, сегодня, за неделю ЦБ РФ, Доллар, Евро и др.. | Кредит Отз...',
                              'description': ''
                            },
                            'type': 'widget',
                            'data': 'comments'
                          },
                          'comments': {
                            'count': 0,
                            'can_post': 0
                          },
                          'likes': {
                            'count': 0,
                            'user_likes': 0,
                            'can_like': 1,
                            'can_publish': 1
                          },
                          'reposts': {
                            'count': 0,
                            'user_reposted': 0
                          }
                        }
                      ]
                    }
                  }";

//... еще где-то в коде
var data = JObject.Parse(json);
var items = data["response"]["items"];

string text = items[0]["text"].Value<string>();
string name = items[0]["post_source"]["link"]["title"].Value<string>();


Как-то так, подробнее здесь ;) www.newtonsoft.com/json/help/html/LINQtoJSON.htm
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы