Данные в формате JSON

Lexicon

Client
Регистрация
27.12.2012
Сообщения
1 775
Благодарностей
901
Баллы
113
А как вы себе представляете json с кучей уровней вложенности в текущих объектах зеннопостера?
 

codeby

Client
Регистрация
25.08.2014
Сообщения
394
Благодарностей
53
Баллы
28
А как вы себе представляете json с кучей уровней вложенности в текущих объектах зеннопостера?
1 блок - 1 данные
например для первого уровня этом может быть Item.Value
для второго уровня Item1->Item2.Value
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 715
Баллы
113
Есть такая таска но пока без сроков на реализацию.
 

Lexicon

Client
Регистрация
27.12.2012
Сообщения
1 775
Благодарностей
901
Баллы
113
1 блок - 1 данные
например для первого уровня этом может быть Item.Value
для второго уровня Item1->Item2.Value
Ну т.е. это будет доступно через код?
на шарпе и так можно собрать себе десериализатор для json
Сдается мне что лучше поклянчить сниппет, который надо положить в библиотеку себе на комп, который на выходе будет получать словарь из строки json, а там уже допиливать самостоятельно этот сниппет под требуемые задачи
 

7make

Client
Регистрация
25.06.2011
Сообщения
1 547
Благодарностей
1 311
Баллы
113

Обращаем Ваше внимание на то, что данный пользователь заблокирован.
Не рекомендуем проводить с 7make какие-либо сделки.

пуляешь сюда json на выходе готовый класс..ниче мудрить не нужно..
пример как все просто.
1. есть такой json VK
2. гуглим любой онлайн JSON VIEWER
https://www.jsoneditoronline.org/
смотрим структуру, уровни вложенности и что нам нужно извлекать.

3. пуляем весь json сюда http://json2csharp.com/
нам создали готовый класс
upload_2015-2-6_2-46-12.png


выпиливаем лишние свойства. оставляем только те, что нам нужно.

к примеру, возьмем только id + owner_id + title

компилим в студии dll с этим классом.

C#:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace JSOND
{
    public class Response
    {
        public int id { get; set; }
        public string title { get; set; }
        public int owner_id { get; set; }
    }

    public class RootObject
    {
        public List<Response> response { get; set; }
    }


}
подключаем эту dll + JsonNET
не забываем про using

4. в снипете уже работаем с нашим классом. можно и весь класс оставить, без выпиливания. как хотите.

C#:
string json = project.Variables["json"].Value;
var table = project.Tables["table"];

RootObject obj = JsonConvert.DeserializeObject<RootObject>(json);

for (int i = 0; i < obj.response.Count; i++)
{   
    string str = String.Format("{0};{1};{2}", obj.response[i].id, obj.response[i].owner_id, obj.response[i].title);
    table.AddRow(str);
}

return 1;
на выходе получим такую таблицу ( в этом примере)
upload_2015-2-6_2-57-43.png
 

LexxWork

Client
Регистрация
31.10.2013
Сообщения
1 190
Благодарностей
791
Баллы
113
имеем переменную json, в ней все как есть отсюда http://pastebin.com/XhJAjJNG#
создаем джаваскрипт кубик
пишем в нем
JavaScript:
var obj = {-Variable.json-};
var out = '';
for (var i = 0; i < obj.response.length; i++){ 
    out += obj.response[i].id+';'+obj.response[i].owner_id+';'+obj.response[i].title+'\n'
}
получаем текст
в следующем кубике сохраняем его в csv
все
не требует браузера
 
Последнее редактирование:

codeby

Client
Регистрация
25.08.2014
Сообщения
394
Благодарностей
53
Баллы
28
имеем переменную json, в ней все как есть отсюда http://pastebin.com/XhJAjJNG#
создаем джаваскрипт кубик
пишем в нем
JavaScript:
var obj = {-Variable.json-};
var out = '';
for (var i = 0; i < obj.response.length; i++){ 
    out += obj.response[i].id+';'+obj.response[i].owner_id+';'+obj.response[i].title+'\n'
}
получаем текст
в следующем кубике сохраняем его в csv
все
Джаваскрипт требует вроде браузера.

А компилить что-то в студии - это конечно круто, но ни разу ни юзер френдли :-) Тем более это нужна лицуха на эту студию.
 

silent

Client
Регистрация
05.04.2014
Сообщения
237
Благодарностей
85
Баллы
28
express бесплатная
 

7make

Client
Регистрация
25.06.2011
Сообщения
1 547
Благодарностей
1 311
Баллы
113

Обращаем Ваше внимание на то, что данный пользователь заблокирован.
Не рекомендуем проводить с 7make какие-либо сделки.

уже давно выкатили visual studio community 2013 которая по функционалу как про версия и бесплатная.
лицензия ограничивает только коммерческую разработку.
 

LexxWork

Client
Регистрация
31.10.2013
Сообщения
1 190
Благодарностей
791
Баллы
113

VIRUS

Новичок
Регистрация
07.08.2015
Сообщения
1
Благодарностей
0
Баллы
1
А почему на js не работает вот такой код? Поддержка JSON является нативной для любого современного js движка.
Код:
var user = '{-Variable.post-}';
user = JSON.parse(user);
var result = user;
 

Lighthouse

Client
Регистрация
09.09.2013
Сообщения
11
Благодарностей
1
Баллы
3

Maxx

Client
Регистрация
30.04.2015
Сообщения
37
Благодарностей
1
Баллы
8

LexxWork

Client
Регистрация
31.10.2013
Сообщения
1 190
Благодарностей
791
Баллы
113
если вас останавливает этот недостаток, то я могу только сказать, что клиенты выбрали не того исполнителя )
 
  • Спасибо
Реакции: Juror

money4honey

Client
Регистрация
19.06.2014
Сообщения
144
Благодарностей
46
Баллы
28
Json.NET давно юзаю в VS.
как её подключить в зенке, куда dll кидать?
скидывал их в папку зены и проекта, в директивах using Newtonsoft.Json не определяется
 

Adigen

Client
Регистрация
28.07.2014
Сообщения
825
Благодарностей
653
Баллы
93
Json.NET давно юзаю в VS.
как её подключить в зенке, куда dll кидать?
скидывал их в папку зены и проекта, в директивах using Newtonsoft.Json не определяется
dll надо положить в папку ExternalAssemblies, она находится в папке с зеннопостером.
И затем подключить эту длл к проекту:
http://zennolab.com/wiki/ru:project_maker:проекты:редактирование_проекта:снипеты
 
  • Спасибо
Реакции: money4honey

money4honey

Client
Регистрация
19.06.2014
Сообщения
144
Благодарностей
46
Баллы
28
dll надо положить в папку ExternalAssemblies, она находится в папке с зеннопостером.
И затем подключить эту длл к проекту:
http://zennolab.com/wiki/ru:project_maker:проекты:редактирование_проекта:снипеты
спасибо, сам нашёл этот ответ буквально за минуту как ты подсказал)
Ссылки из GAC -> добавить -> обзор (.dll)
Директивы using и общий код -> using Newtonsoft.Json;
 

victor196

Client
Регистрация
07.10.2016
Сообщения
16
Благодарностей
7
Баллы
3
выпиливаем лишние свойства. оставляем только те, что нам нужно.

к примеру, возьмем только id + owner_id + title

компилим в студии dll с этим классом.
А как скомпилировать библиотеку, если в классе есть вложенные массивы,
например вот такие:

Код:
public class Org
{
    public int branch_count { get; set; }
    public string id { get; set; }
    public string name { get; set; }
}

public class Response
{
    public string name { get; set; }
    public Point point { get; set; }
    public int timezone_offset { get; set; }
    public List<ContactGroup> contact_groups { get; set; }
    public Flags flags { get; set; }
    public NameEx name_ex { get; set; }
    public List<ExternalContent> external_content { get; set; }
    public Context context { get; set; }
    public Stat stat { get; set; }
    public string segment_id { get; set; }
    public List<AttributeGroup> attribute_groups { get; set; }
    public List<Rubric> rubrics { get; set; }
    public string region_id { get; set; }
    public List<AdmDiv> adm_div { get; set; }
    public string id { get; set; }
    public Ads ads { get; set; }
    public string address_comment { get; set; }
    public Reviews reviews { get; set; }
    public Schedule2 schedule { get; set; }
    public Address address { get; set; }
    public string address_name { get; set; }
    public string type { get; set; }
    public Org org { get; set; }
    public string hash { get; set; }
}

public class RootObject
{
    public List<Response> response { get; set; }
}
И как это будет выглядеть в снипете?
 
Последнее редактирование:

victor196

Client
Регистрация
07.10.2016
Сообщения
16
Благодарностей
7
Баллы
3
А как скомпилировать библиотеку, если в классе есть вложенные массивы,
например вот такие:
Догадался сам :-)

Теперь не понятно как вывести в таком снипете классы, которые входят в класс Response в виде списков и массивов.

Код:
public class Response
{
    public string name { get; set; }
    public Point point { get; set; }
    public int timezone_offset { get; set; }
    public List<ContactGroup> contact_groups { get; set; }
    public Flags flags { get; set; }
    public NameEx name_ex { get; set; }
    public List<ExternalContent> external_content { get; set; }
    public Context context { get; set; }
    public Stat stat { get; set; }
    public string segment_id { get; set; }
    public List<AttributeGroup> attribute_groups { get; set; }
    public List<Rubric> rubrics { get; set; }
    public string region_id { get; set; }
    public List<AdmDiv> adm_div { get; set; }
    public string id { get; set; }
    public Ads ads { get; set; }
    public string address_comment { get; set; }
    public Reviews reviews { get; set; }
    public Schedule2 schedule { get; set; }
    public Address address { get; set; }
    public string address_name { get; set; }
    public string type { get; set; }
    public Org org { get; set; }
    public string hash { get; set; }
}


public class RootObject
{
    public List<Response> response { get; set; }
}
Например: как в таком снипете

Код:
string json = project.Variables["json"].Value;
var table = project.Tables["table"];

RootObject obj = JsonConvert.DeserializeObject<RootObject>(json);

for (int i = 0; i < obj.response.Count; i++)
{
    string str = String.Format("{0};{1};{2}", obj.response[i].id, obj.response[i].owner_id, obj.response[i].title);
    table.AddRow(str);
}

return 1;
вывести

Код:
public List<AdmDiv> adm_div { get; set; }
при чём не весь список а конкретное значение из этого списка.
 
Последнее редактирование:

Artem1977

Client
Регистрация
31.10.2015
Сообщения
21
Благодарностей
2
Баллы
3
пуляешь сюда json на выходе готовый класс..ниче мудрить не нужно..
пример как все просто.
1. есть такой json VK
2. гуглим любой онлайн JSON VIEWER
https://www.jsoneditoronline.org/
смотрим структуру, уровни вложенности и что нам нужно извлекать.

3. пуляем весь json сюда http://json2csharp.com/
нам создали готовый класс
Посмотреть вложение 7257
А не подскажите, как правильно составить код, чтобы разложить Json вместо таблицы в базу mySql?
 
Последнее редактирование:

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