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

backoff

Client
Регистрация
20.04.2015
Сообщения
6 052
Благодарностей
6 481
Баллы
113
Есть исходник
https://pastebin.com/faDQHtci

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

55555555 | tag1 tag2 ... tag10
66666666 | tag1 tag2 ... tag10
 

backoff

Client
Регистрация
20.04.2015
Сообщения
6 052
Благодарностей
6 481
Баллы
113
если вставлять как
tags[0].title
то парсит, конечно же только первый тег, если вставить tags.title - ничего не парсит ))
как запилить чтоб парсил все теги относящиеся к своем id ?
 

backoff

Client
Регистрация
20.04.2015
Сообщения
6 052
Благодарностей
6 481
Баллы
113

budora

Client
Регистрация
13.08.2012
Сообщения
831
Благодарностей
556
Баллы
93
Отличное перечисление coubs[1].tags[0].title затем coubs[1].tags[1].title и далее. В чём проблема?
 

backoff

Client
Регистрация
20.04.2015
Сообщения
6 052
Благодарностей
6 481
Баллы
113

budora

Client
Регистрация
13.08.2012
Сообщения
831
Благодарностей
556
Баллы
93
Или написать свой класс или брать только необходимое. Создаёте счётчики coubs=1 tags=0 и подставляя его в coubs[№].tags[№] получаете в цикле необходимые значения сначала для coubs=1 затем coubs=2 и т.д
 

backoff

Client
Регистрация
20.04.2015
Сообщения
6 052
Благодарностей
6 481
Баллы
113
да, счетчики, циклы, это понятно, думал есть вариант проще ...
 

vrska

Client
Регистрация
07.02.2010
Сообщения
589
Благодарностей
408
Баллы
63
Код:
long channnel_id;
string channel_title, tag_title, ret;
int ids = project.Json.channels.Count, tags_cnt;
StringBuilder tags_string = new StringBuilder();

for (int i = 0; i < ids; i++)
{
    channnel_id = project.Json.channels[i].id;
    channel_title = project.Json.channels[i].title;

    try
    {
        tags_cnt = project.Json.channels[i].background_coub.tags.Count;
        for(int j = 0; j < tags_cnt; j++)
        {
            tag_title = project.Json.channels[i].background_coub.tags[j].title;
            tags_string.Append(tag_title + ", ");
        }
        ret = String.Format("{0} | {1}", channel_title, tags_string.Remove(tags_string.Length-2, 2));
        project.SendInfoToLog(ret, true);
        tags_string.Clear();
    }
  
    catch (Exception e)
    {
        //project.SendInfoToLog(e.ToString(), true);
    }
}
 
Последнее редактирование:
  • Спасибо
Реакции: backoff и Dorian_Gray

backoff

Client
Регистрация
20.04.2015
Сообщения
6 052
Благодарностей
6 481
Баллы
113
можно адаптировать в шаблоне чтоб у каждого куба были свои теги?
а то не представляю как запилить все в таблицу в столбик Е
спасибо.
 

Вложения

backoff

Client
Регистрация
20.04.2015
Сообщения
6 052
Благодарностей
6 481
Баллы
113
походу косяк, если написать в строке tags, то выдает такой результат
то есть как бы правильный, на сколько я понимаю, все теги для данной id
http://dl3.joxi.net/drive/2019/05/20/0011/3379/724275/75/74f8f747ca.jpg
но почему-то с уточнением не выдает.

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

@VladZen
 

vrska

Client
Регистрация
07.02.2010
Сообщения
589
Благодарностей
408
Баллы
63
можно адаптировать в шаблоне чтоб у каждого куба были свои теги?
а то не представляю как запилить все в таблицу в столбик Е
спасибо.
А попробуй-ка сам.
Ты 4 года на форуме, 2к сообщений. 200 созданных тем и все начинаются с "Как, помогите, подскажите, посоветуйте". Может ты начнешь учиться за пределами этого форума?
Мои знания в c# на уровне 0.099% от всего языка. Я потратил время чтобы запилить сниппет под задачу из твоего первого поста.
Код оооочень наглядный и простой, если ты хотя бы попытаешься в нем разобраться.
Как добавить значение переменной в таблицу на форуме обсуждалось миллиард раз.
Плюс ты кинул свой проект в котором этого сниппета даже нет. Ты даже не пытался...
 
  • Спасибо
Реакции: surrealmix и Yuriy Zymlex

backoff

Client
Регистрация
20.04.2015
Сообщения
6 052
Благодарностей
6 481
Баллы
113
А попробуй-ка сам.
Ты 4 года на форуме, 2к сообщений. 200 созданных тем и все начинаются с "Как, помогите, подскажите, посоветуйте". Может ты начнешь учиться за пределами этого форума?
Безупречная логика.
Это как, такой летаешь на самолете 20 лет, а потом пилот такой говорит, а может ты сам попробуешь, щас уже и знать ничего не надо за тебя все компьютер делает. Давай.
Мои знания в c# на уровне 0.099% от всего языка.
мои знания - это -0.00099% от твоего уровня )
Я потратил время чтобы запилить сниппет под задачу из твоего первого поста.
за это большое спасибо.
Плюс ты кинул свой проект в котором этого сниппета даже нет. Ты даже не пытался...
пытался, на своей машине сделать, но результат был только в логах, а даже не знаю блять как в переменную результат положить, не говоря уже о более серьезный действиях.

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

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

surrealmix

Client
Регистрация
07.03.2013
Сообщения
715
Благодарностей
409
Баллы
63
Есть исходник
https://pastebin.com/faDQHtci

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

55555555 | tag1 tag2 ... tag10
66666666 | tag1 tag2 ... tag10
C#:
var json = project.Variables["Json"].Value; //переменная зенно с json-содержимым
var data = Global.ZennoLab.Json.JsonConvert.DeserializeObject<dynamic>(json);
var results = new List<string>();


foreach(var coub in data.coubs)
{
    var tagsList = new List<string>();
    foreach(var tag in coub.tags)
    {
        tagsList.Add((string)tag.title);
    }
   
    var tagsString = string.Join(" ", tagsList);
    var result = string.Format("{0} | {1}", (int)coub.id, tagsString);
    results.Add(result);
}

return string.Join(Environment.NewLine, results);
 
  • Спасибо
Реакции: backoff и vrska

vrska

Client
Регистрация
07.02.2010
Сообщения
589
Благодарностей
408
Баллы
63
del
 

backoff

Client
Регистрация
20.04.2015
Сообщения
6 052
Благодарностей
6 481
Баллы
113
Не надо сравнивать жопу с пальцем. В данном случае самолет это зенно
в данном случае самолет - это сишарп, в котором совершенно нихрена не понимаю, и уровень такой что только позволяет сохранять готовые сниппеты, чтоб потом ими пользоваться, максимум что могу сделать это X+Y
и почему ты решил что всем просто разобраться? много раз пробовал это сделать, всегда затык на циклах.
ну и помогая - помогай, а не занимайся нравоучениями.
 

vrska

Client
Регистрация
07.02.2010
Сообщения
589
Благодарностей
408
Баллы
63

backoff

Client
Регистрация
20.04.2015
Сообщения
6 052
Благодарностей
6 481
Баллы
113
Да, с такими хелперами как ты, там и останемся. Отличное комьюнити :ay:
 

vrska

Client
Регистрация
07.02.2010
Сообщения
589
Благодарностей
408
Баллы
63
Да, токсичное комьюнити. Ставят задачу, получают два примера реализации, просят запилить проект от и до, получают отказ, подгорают :ay:
 
  • Спасибо
Реакции: backoff

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