разбор JSON

f0x

Client
Регистрация
07.02.2014
Сообщения
54
Благодарностей
6
Баллы
8
Добрый вечер.

Есть ответ сервера в таком виде:
http://notepad.cc/cajupa5

Нужно его разобрать с сохранением в таблицу xls
Из всей выдачи мне нужны лишь эти данные:
1. "id": "776399499062298",
2. "name": "Бодибилдинг, пауэрлифтинг, фитнес и кроссфит",
3. "subtext": "739 участников"

Сделал все как описал 7make
http://zennolab.com/discussion/threads/dannye-v-formate-json.12779/page-2#post-115494

Получился такой класс:

Код:
public class Type
{
    public string name { get; set; }
}

public class ProfilePicture42
{
    public int height { get; set; }
    public object name { get; set; }
    public int scale { get; set; }
    public string uri { get; set; }
    public int width { get; set; }
}

public class Node2
{
    public string id { get; set; }
    public ProfilePicture42 profilePicture42 { get; set; }
}

public class Edge2
{
    public Node2 node { get; set; }
}

public class GroupMembers
{
    public List<Edge2> edges { get; set; }
}

public class Node
{
    public Type __type__ { get; set; }
    public string id { get; set; }
    public GroupMembers group_members { get; set; }
    public string name { get; set; }
    public bool requires_admin_membership_approval { get; set; }
    public string viewer_join_state { get; set; }
    public bool is_forsale_group { get; set; }
}

public class Edge
{
    public Node node { get; set; }
    public string category { get; set; }
    public string subtext { get; set; }
}

public class PageInfo
{
    public string end_cursor { get; set; }
    public bool has_next_page { get; set; }
    public bool has_previous_page { get; set; }
    public string start_cursor { get; set; }
}

public class SearchResults
{
    public List<Edge> edges { get; set; }
    public PageInfo page_info { get; set; }
}

public class __invalid_type__Фитнес
{
    public string id { get; set; }
    public SearchResults search_results { get; set; }
}

public class RootObject
{
    public __invalid_type__Фитнес __invalid_name__Фитнес { get; set; }
}

Проблема в том, что "Фитнес" динамическая переменная, каждый запрос будет свое слово содержать.

Помогите пожалуйста составить класс.
Спасибо
 

LexxWork

Client
Регистрация
31.10.2013
Сообщения
1 190
Благодарностей
786
Баллы
113
попробуй так
C#:
var jsontext = project.Variables["jsondata"].Value;
var keyword = "Фитнес";
var delimiter = "\t";

var edges = new System.Web.Script.Serialization.JavaScriptSerializer().Deserialize<dynamic>(jsontext)[keyword]["search_results"]["edges"] as IEnumerable<dynamic>;

return string.Join("\r\n", edges.Select(d=>
    string.Join(delimiter, new object [] {
        d["node"]["id"],
        d["node"]["name"],
        d["subtext"]
    })
));
и добавь если нету либу System.Web.Extentions
 
  • Спасибо
Реакции: f0x

f0x

Client
Регистрация
07.02.2014
Сообщения
54
Благодарностей
6
Баллы
8
LexxWork
В очередной раз огромное спасибо, выручаете !!!
Все работает и не надо dl компилировать :-)
 

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