Как распарсить JSON 3го уровня ?

Discussion in 'Вопросы и обсуждение' started by backoff, May 19, 2019.

  1. backoff

    backoff Client

    Joined:
    Apr 20, 2015
    Messages:
    2,836
    Likes Received:
    2,114
    Есть исходник
    https://pastebin.com/faDQHtci

    нужно брать допустим
    id куба и все теги к этому кубу, на выходе чтоб получилось так:

    55555555 | tag1 tag2 ... tag10
    66666666 | tag1 tag2 ... tag10
     
  2. backoff

    backoff Client

    Joined:
    Apr 20, 2015
    Messages:
    2,836
    Likes Received:
    2,114
    если вставлять как
    tags[0].title
    то парсит, конечно же только первый тег, если вставить tags.title - ничего не парсит ))
    как запилить чтоб парсил все теги относящиеся к своем id ?
     
  3. backoff

    backoff Client

    Joined:
    Apr 20, 2015
    Messages:
    2,836
    Likes Received:
    2,114
    хэльп
     
  4. budora

    budora Client

    Joined:
    Aug 13, 2012
    Messages:
    790
    Likes Received:
    500
    Отличное перечисление coubs[1].tags[0].title затем coubs[1].tags[1].title и далее. В чём проблема?
     
  5. backoff

    backoff Client

    Joined:
    Apr 20, 2015
    Messages:
    2,836
    Likes Received:
    2,114
    проблема в организации логики.. так как с тегами собираются еще другие значения...
    помоги организовать правильный сбор

    то есть вот как собирается сейчас - http://joxi.ru/a2XQ9xwUwpP4VA
     
  6. budora

    budora Client

    Joined:
    Aug 13, 2012
    Messages:
    790
    Likes Received:
    500
    Или написать свой класс или брать только необходимое. Создаёте счётчики coubs=1 tags=0 и подставляя его в coubs[№].tags[№] получаете в цикле необходимые значения сначала для coubs=1 затем coubs=2 и т.д
     
  7. backoff

    backoff Client

    Joined:
    Apr 20, 2015
    Messages:
    2,836
    Likes Received:
    2,114
    да, счетчики, циклы, это понятно, думал есть вариант проще ...
     
  8. vrska

    vrska Client

    Joined:
    Feb 7, 2010
    Messages:
    256
    Likes Received:
    92
    Code (text):
    1. long channnel_id;
    2. string channel_title, tag_title, ret;
    3. int ids = project.Json.channels.Count, tags_cnt;
    4. StringBuilder tags_string = new StringBuilder();
    5.  
    6. for (int i = 0; i < ids; i++)
    7. {
    8.     channnel_id = project.Json.channels[i].id;
    9.     channel_title = project.Json.channels[i].title;
    10.  
    11.     try
    12.     {
    13.         tags_cnt = project.Json.channels[i].background_coub.tags.Count;
    14.         for(int j = 0; j < tags_cnt; j++)
    15.         {
    16.             tag_title = project.Json.channels[i].background_coub.tags[j].title;
    17.             tags_string.Append(tag_title + ", ");
    18.         }
    19.         ret = String.Format("{0} | {1}", channel_title, tags_string.Remove(tags_string.Length-2, 2));
    20.         project.SendInfoToLog(ret, true);
    21.         tags_string.Clear();
    22.     }
    23.  
    24.     catch (Exception e)
    25.     {
    26.         //project.SendInfoToLog(e.ToString(), true);
    27.     }
    28. }
     
    Last edited: May 19, 2019
    backoff and Dorian_Gray like this.
  9. backoff

    backoff Client

    Joined:
    Apr 20, 2015
    Messages:
    2,836
    Likes Received:
    2,114
    можно адаптировать в шаблоне чтоб у каждого куба были свои теги?
    а то не представляю как запилить все в таблицу в столбик Е
    спасибо.
     

    Attached Files:

  10. backoff

    backoff Client

    Joined:
    Apr 20, 2015
    Messages:
    2,836
    Likes Received:
    2,114
    походу косяк, если написать в строке tags, то выдает такой результат
    то есть как бы правильный, на сколько я понимаю, все теги для данной id
    http://dl3.joxi.net/drive/2019/05/20/0011/3379/724275/75/74f8f747ca.jpg
    но почему-то с уточнением не выдает.

    почему по tags.title ничего ??

    @VladZen
     
  11. vrska

    vrska Client

    Joined:
    Feb 7, 2010
    Messages:
    256
    Likes Received:
    92
    А попробуй-ка сам.
    Ты 4 года на форуме, 2к сообщений. 200 созданных тем и все начинаются с "Как, помогите, подскажите, посоветуйте". Может ты начнешь учиться за пределами этого форума?
    Мои знания в c# на уровне 0.099% от всего языка. Я потратил время чтобы запилить сниппет под задачу из твоего первого поста.
    Код оооочень наглядный и простой, если ты хотя бы попытаешься в нем разобраться.
    Как добавить значение переменной в таблицу на форуме обсуждалось миллиард раз.
    Плюс ты кинул свой проект в котором этого сниппета даже нет. Ты даже не пытался...
     
    surrealmix and Zymlex like this.
  12. backoff

    backoff Client

    Joined:
    Apr 20, 2015
    Messages:
    2,836
    Likes Received:
    2,114
    Безупречная логика.
    Это как, такой летаешь на самолете 20 лет, а потом пилот такой говорит, а может ты сам попробуешь, щас уже и знать ничего не надо за тебя все компьютер делает. Давай.
    мои знания - это -0.00099% от твоего уровня )
    за это большое спасибо.
    пытался, на своей машине сделать, но результат был только в логах, а даже не знаю блять как в переменную результат положить, не говоря уже о более серьезный действиях.

    Ну и в 99% случаях обхожусь кубиками, и щас бы обошелся, если бы работало :-) о чем я написал чуть выше

    короче ладно, спасибо, что потратил время
     
  13. surrealmix

    surrealmix Client

    Joined:
    Mar 7, 2013
    Messages:
    721
    Likes Received:
    383
    Code (csharp):
    1. var json = project.Variables["Json"].Value; //переменная зенно с json-содержимым
    2. var data = Global.ZennoLab.Json.JsonConvert.DeserializeObject<dynamic>(json);
    3. var results = new List<string>();
    4.  
    5.  
    6. foreach(var coub in data.coubs)
    7. {
    8.     var tagsList = new List<string>();
    9.     foreach(var tag in coub.tags)
    10.     {
    11.         tagsList.Add((string)tag.title);
    12.     }
    13.    
    14.     var tagsString = string.Join(" ", tagsList);
    15.     var result = string.Format("{0} | {1}", (int)coub.id, tagsString);
    16.     results.Add(result);
    17. }
    18.  
    19. return string.Join(Environment.NewLine, results);
     
    backoff and vrska like this.
  14. vrska

    vrska Client

    Joined:
    Feb 7, 2010
    Messages:
    256
    Likes Received:
    92
  15. backoff

    backoff Client

    Joined:
    Apr 20, 2015
    Messages:
    2,836
    Likes Received:
    2,114
    в данном случае самолет - это сишарп, в котором совершенно нихрена не понимаю, и уровень такой что только позволяет сохранять готовые сниппеты, чтоб потом ими пользоваться, максимум что могу сделать это X+Y
    и почему ты решил что всем просто разобраться? много раз пробовал это сделать, всегда затык на циклах.
    ну и помогая - помогай, а не занимайся нравоучениями.
     
  16. vrska

    vrska Client

    Joined:
    Feb 7, 2010
    Messages:
    256
    Likes Received:
    92
    — Как мотивировать себя что-то делать?
    — Да никак, оставайтесь в жопе!
     
  17. backoff

    backoff Client

    Joined:
    Apr 20, 2015
    Messages:
    2,836
    Likes Received:
    2,114
    Да, с такими хелперами как ты, там и останемся. Отличное комьюнити :ay:
     
  18. vrska

    vrska Client

    Joined:
    Feb 7, 2010
    Messages:
    256
    Likes Received:
    92
    Да, токсичное комьюнити. Ставят задачу, получают два примера реализации, просят запилить проект от и до, получают отказ, подгорают :ay:
     
    backoff likes this.

Пользователи просматривающие тему (Пользователей: 0, Гостей: 0)