Хелп, помогите пожалуйста распарсить JSON ответ от апи вконтакте и записать его в таблицу

littleKongo

Client
Регистрация
17.01.2015
Сообщения
244
Благодарностей
24
Баллы
18
Хелп, помогите пожалуйста распарсить JSON ответ от апи вконтакте и записать его в таблицу

Вот сам ответ

Код:
{"response":[1000,{"id":18,"date":1453709185,"owner_id":-112685262,"from_id":-112685262,"group":{"gid":112685262,"name":"Бабло из Интернета","screen_name":"club112685262","is_closed":0,"type":"group","photo":"http:\/\/cs628131.vk.me\/v628131717\/3a5f6\/BO3Dx93xjYE.jpg","photo_medium":"http:\/\/cs628131.vk.me\/v628131717\/3a5f5\/H72iHxw4XOY.jpg","photo_big":"http:\/\/cs628131.vk.me\/v628131717\/3a5f4\/oxwe6HMuXYA.jpg"},"post_type":"post","text":"КАК ЗАРАБОТАТЬ В ИНТЕРНЕТЕ<br><br> В сфере нынешних экономических событий, когда найти работу стает все сложнее, вопросом как заработать в интернете задаются все больше и больше людей, которые имеют доступ к Интернету. РНе теряйте время даром. Зарабатывать в сети Интернет реально, главное желание.","attachment":{"type":"photo","photo":{"pid":402179564,"aid":-7,"owner_id":-112685262,"user_id":100,"src":"http:\/\/cs631116.vk.me\/v631116717\/1100b\/Yhn_RJnQpPY.jpg","src_big":"http:\/\/cs631116.vk.me\/v631116717\/1100c\/sRSLTwQ6vbI.jpg","src_small":"http:\/\/cs631116.vk.me\/v631116717\/1100a\/DU0cKByR88A.jpg","width":200,"height":150,"text":"","created":1453709185,"post_id":18,"access_key":"3745e208e4bb4c6d35"}},"attachments":[{"type":"photo","photo":{"pid":402179564,"aid":-7,"owner_id":-112685262,"user_id":100,"src":"http:\/\/cs631116.vk.me\/v631116717\/1100b\/Yhn_RJnQpPY.jpg","src_big":"http:\/\/cs631116.vk.me\/v631116717\/1100c\/sRSLTwQ6vbI.jpg","src_small":"http:\/\/cs631116.vk.me\/v631116717\/1100a\/DU0cKByR88A.jpg","width":200,"height":150,"text":"","created":1453709185,"post_id":18,"access_key":"3745e208e4bb4c6d35"}}],"comments":{"count":0},"likes":{"count":7},"reposts":{"count":5}},{"id":5107,"date":1453633298,"owner_id":-72239958,"from_id":-72239958,"group":{"gid":72239958,"name":"Легко и просто купить или продать в КИРОВОГРАДЕ","screen_name":"club72239958","is_closed":0,"type":"group","photo":"http:\/\/cs623817.vk.me\/v623817172\/22aea\/qBSWpnZzO8g.jpg","photo_medium":"http:\/\/cs623817.vk.me\/v623817172\/22ae9\/xQDAIaAwoTE.jpg","photo_big":"http:\/\/cs623817.vk.me\/v623817172\/22ae8\/E_TUCHbDVwM.jpg"},"post_type":"post","text":"Советы начинающим копирайтерам<br><br>Если Вы не так давно занялись написанием статей за деньги и полем деятельности избрали Интернет, то данная короткая статья будет Вам весьма полезна. Ну а если копирайтерская стезя только в планах - польза от материала будет вообще огромная!  Постепенно привыкайте к тому, что Ваши статьи приобретают ценность. Это будет происходить приблизительно через несколько месяцев после начала копирайтерской практики. Когда появится это чувство, то можете и поднять планку оплаты за свои материалы - ведь они стоят того!<br>Вот и все - будем ставить точку. <br><br>В заключении приведем слова одного сердитого копирайтера, который как нельзя удачно передал весь оттяг, сопутствующий его ремеслу, - \"С помощью копирайтинга я зарабатываю на жизнь, а большинство людей, даже не слышали что сей термин означает\". <br><br>Удачи!","attachment":{"type":"photo","photo":{"pid":399069681,"aid":-7,"owner_id":-72239958,"user_id":100,"src":"http:\/\/cs633625.vk.me\/v633625131\/c9c5\/ergFtvJV5qg.jpg","src_big":"http:\/\/cs633625.vk.me\/v633625131\/c9c6\/mQEIB30V-n4.jpg","src_small":"http:\/\/cs633625.vk.me\/v633625131\/c9c4\/5ellomCqMcg.jpg","width":450,"height":270,"text":"","created":1453629605,"post_id":5104,"access_key":"67b394894a7d53396c"}},"attachments":[{"type":"photo","photo":{"pid":399069681,"aid":-7,"owner_id":-72239958,"user_id":100,"src":"http:\/\/cs633625.vk.me\/v633625131\/c9c5\/ergFtvJV5qg.jpg","src_big":"http:\/\/cs633625.vk.me\/v633625131\/c9c6\/mQEIB30V-n4.jpg","src_small":"http:\/\/cs633625.vk.me\/v633625131\/c9c4\/5ellomCqMcg.jpg","width":450,"height":270,"text":"","created":1453629605,"post_id":5104,"access_key":"67b394894a7d53396c"}}],"comments":{"count":0},"likes":{"count":0},"reposts":{"count":0}},{"id":3573,"date":1453558100,"owner_id":22393037,"from_id":22393037,"user":{"uid":22393037,"first_name":"Kamshat","last_name":"Webb","sex":1,"screen_name":"kamshat_webb","photo":"http:\/\/cs616526.vk.me\/v616526037\/eccf\/x8uCpkLF8fc.jpg","photo_medium_rec":"http:\/\/cs616526.vk.me\/v616526037\/ecce\/OjX-VQ7UGK0.jpg","online":0},"post_type":"post","text":"#Интервью с профессиональным копирайтером-фрилансером, Кириллом Стрельниковым ☺<br><br> Кирилл занимается копирайтерской деятельностью больше 15 лет, он создает оригинальные, а главное - работающие тексты и слоганы для любой сферы бизнеса и компаний любого размера. Вот ссылка на сайт Кирилла  http:\/\/www.supercreator.ru <br><br> Это интервью будет очень полезным для всех, кто интересуется копирайтингом, для тех, кому нужны услуги профессиональных копирайтеров, а также для тех, кто совсем не знаком с этой профессией.<br><br>✨  Все гениальные копирайтеры когда-то были никакими, и это их не остановило. Не бойтесь делать «ненастоящее» портфолио. Не бойтесь притвориться «крутым». Не бойтесь творчески использовать идеи, придуманные до вас. А главное – не бойтесь конкуренции. Вы не похожи на других, а это значит, что у Вас обязательно есть своя фишка, которую нужно вытащить на поверхность – и плыть на всех парусах. Счастливого плавания!","attachment":{"type":"photo","photo":{"pid":398279826,"aid":-7,"owner_id":22393037,"src":"http:\/\/cs627724.vk.me\/v627724037\/3c2a0\/0Hz-4TE5Q_k.jpg","src_big":"http:\/\/cs627724.vk.me\/v627724037\/3c2a1\/18vNyIIp7bk.jpg","src_small":"http:\/\/cs627724.vk.me\/v627724037\/3c29f\/NAN7JyHzabg.jpg","src_xbig":"http:\/\/cs627724.vk.me\/v627724037\/3c2a2\/nhSiRz5rKfk.jpg","width":766,"height":511,"text":"","created":1453558093,"post_id":3573,"access_key":"7f52aefe42049380cf"}},"attachments":[{"type":"photo","photo":{"pid":398279826,"aid":-7,"owner_id":22393037,"src":"http:\/\/cs627724.vk.me\/v627724037\/3c2a0\/0Hz-4TE5Q_k.jpg","src_big":"http:\/\/cs627724.vk.me\/v627724037\/3c2a1\/18vNyIIp7bk.jpg","src_small":"http:\/\/cs627724.vk.me\/v627724037\/3c29f\/NAN7JyHzabg.jpg","src_xbig":"http:\/\/cs627724.vk.me\/v627724037\/3c2a2\/nhSiRz5rKfk.jpg","width":766,"height":511,"text":"","created":1453558093,"post_id":3573,"access_key":"7f52aefe42049380cf"}}],"comments":{"count":0},"likes":{"count":3},"reposts":{"count":1}}]}
Вот заготовка С# для распарсивания, но надо кажется что-то сделать с циклами. Заготовка с другого проекта, там проще распарсивание было делать

Да, и здесь для примера всего 3 ответа, а вообще планируется что будет 50 ответов, и хочется чтобы за один снипет распарсивало все ответы в таблицу

Лбязательные параметры для распарсивания
"id"
"owner_id"
"from_id"
"text"

Код:
var json = project.Variables["var1"].Value;
var jsoner = new System.Web.Script.Serialization.JavaScriptSerializer();
Dictionary<string,object> data = jsoner.Deserialize<Dictionary<string,object>>(json);
var response = (System.Collections.ArrayList)data["response"];

var table = project.Tables["temp"];
lock(SyncObjects.TableSyncer)
{
   foreach (var item in temp)
   {
     var name = ((Dictionary<string,object>)(item))["id"].ToString();
  var cnt = ((Dictionary<string,object>)(item))["owner_id"].ToString();
     var url = ((Dictionary<string,object>)(item))["from_id"].ToString();
     table.AddRow(id+"\t"+owner_id+"\t"+from_id);
   }
}
 
Последнее редактирование:

littleKongo

Client
Регистрация
17.01.2015
Сообщения
244
Благодарностей
24
Баллы
18
Поправил код на такой, все должно работать вроде, но выдает ошибку
"Выполнение действия CSharp OwnCode Не удалось привести тип объекта "System.Int32" к типу "System.Collections.Generic.Dictionary`2[System.String,System.Object]"."

Код:
var json = project.Variables["var1"].Value;
var jsoner = new System.Web.Script.Serialization.JavaScriptSerializer();
Dictionary<string,object> data = jsoner.Deserialize<Dictionary<string,object>>(json);
var response = (System.Collections.ArrayList)data["response"];

var table = project.Tables["response"];
lock(SyncObjects.TableSyncer)
{
    foreach (var item in response)
    {
        var id = ((Dictionary<string,object>)(item))["id"].ToString();
        var owner_id = ((Dictionary<string,object>)(item))["owner_id"].ToString();
        var from_id = ((Dictionary<string,object>)(item))["from_id"].ToString();
        table.AddRow(id+"\t"+owner_id+"\t"+from_id);
    }
}
 

littleKongo

Client
Регистрация
17.01.2015
Сообщения
244
Благодарностей
24
Баллы
18
Убрал в ответе 1000
и вроде заработало, НО, как сделать чтобы заработало без убирания этой 1000, и вообще что это за 1000?
 

littleKongo

Client
Регистрация
17.01.2015
Сообщения
244
Благодарностей
24
Баллы
18
Убрал в ответе 1000
и вроде заработало, НО, как сделать чтобы заработало без убирания этой 1000, и вообще что это за 1000?
Друзья форумчане, помогите пожалуйста
Никак не могу решить вопрос с этой цифрой, она каждый раз разная и если ее убираешь, то код отрабатывает корректно
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
var from_id = ((Dictionary<string,object>)(item))[1]["from_id"].ToString();
может так? с джейсоном давно не работал,а на c# вообще никода
 

littleKongo

Client
Регистрация
17.01.2015
Сообщения
244
Благодарностей
24
Баллы
18

Nick

Client
Регистрация
22.07.2014
Сообщения
1 983
Благодарностей
817
Баллы
113
удали это число регуляркой, и дело с концом
 

littleKongo

Client
Регистрация
17.01.2015
Сообщения
244
Благодарностей
24
Баллы
18
удали это число регуляркой, и дело с концом
удаляю регуляркой, однако она почему-то не каждый раз срабатывает, а проект в минуту выполняется 20-30 раз и постоянно ошибки вылетают

Вот так это выглядит:
 

littleKongo

Client
Регистрация
17.01.2015
Сообщения
244
Благодарностей
24
Баллы
18
Очень важно чтобы проект работал без ошибок
 

Juror

Client
Регистрация
16.09.2015
Сообщения
21
Благодарностей
7
Баллы
3
Очень важно чтобы проект работал без ошибок
Сталкивался с такой же проблемой. Устранил только после правки API запроса к ВК. (У меня был "комбинированный" запрос через екзекуте).
Если проблема актуальна - обращайтесь.
 

Кто просматривает тему: (Всего: 2, Пользователи: 0, Гости: 2)