С Новым годом! Форум программистов, компьютерный форум, киберфорум
PHP: API, боты
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
0 / 0 / 1
Регистрация: 15.01.2011
Сообщений: 97
Яндекс API

Обработка ответа JSON

20.08.2017, 16:10. Показов 2369. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день!
Возникла проблема: получаю ответ JSON, проблема в обработке JSON, выводе данных на страницу

JSON
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
{
    "result": {
        "Campaigns": [
            {
                "Name": "Test API Sandbox campaign 1",
                "Type": "TEXT_CAMPAIGN",
                "TimeZone": "Europe/Moscow",
                "StartDate": "2017-08-17",
                "TextCampaign": {
                    "BiddingStrategy": {
                        "Network": {
                            "NetworkDefault": {
                                "BidPercent": 100
                            },
                            "BiddingStrategyType": "NETWORK_DEFAULT"
                        },
                        "Search": {
                            "BiddingStrategyType": "IMPRESSIONS_BELOW_SEARCH"
                        }
                    }
                },
                "Status": "ACCEPTED",
                "TimeTargeting": {
                    "ConsiderWorkingWeekends": "YES",
                    "HolidaysSchedule": null,
                    "Schedule": {
                        "Items": [
                            "1,0,0,0,0,0,0,0,0,100,100,100,100,100,100,0,100,100,100,100,100,100,0,0,0",
                            "2,0,0,0,0,0,0,0,0,100,100,100,100,100,100,0,100,100,100,100,100,100,0,0,0",
                            "3,0,0,0,0,0,0,0,0,100,100,100,100,100,100,0,100,100,100,100,100,100,0,0,0",
                            "4,0,0,0,0,0,0,0,0,100,100,100,100,100,100,0,100,100,100,100,100,100,0,0,0",
                            "5,0,0,0,0,0,0,0,0,100,100,100,100,100,100,0,100,100,100,100,100,100,0,0,0",
                            "6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0",
                            "7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"
                        ]
                    }
                },
                "DailyBudget": null,
                "BlockedIps": null,
                "ExcludedSites": null,
                "NegativeKeywords": {
                    "Items": [
                        "keyword1",
                        "keyword2",
                        "keyword3"
                    ]
                },
                "EndDate": null,
                "Id": 228861
            },
            {
                "EndDate": null,
                "Id": 228862,
                "BlockedIps": null,
                "ExcludedSites": null,
                "NegativeKeywords": {
                    "Items": [
                        "keyword1",
                        "keyword2",
                        "keyword3"
                    ]
                },
                "DailyBudget": null,
                "TimeTargeting": {
                    "Schedule": {
                        "Items": [
                            "1,0,0,0,0,0,0,0,0,100,100,100,100,100,100,0,100,100,100,100,100,100,0,0,0",
                            "2,0,0,0,0,0,0,0,0,100,100,100,100,100,100,0,100,100,100,100,100,100,0,0,0",
                            "3,0,0,0,0,0,0,0,0,100,100,100,100,100,100,0,100,100,100,100,100,100,0,0,0",
                            "4,0,0,0,0,0,0,0,0,100,100,100,100,100,100,0,100,100,100,100,100,100,0,0,0",
                            "5,0,0,0,0,0,0,0,0,100,100,100,100,100,100,0,100,100,100,100,100,100,0,0,0",
                            "6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0",
                            "7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"
                        ]
                    },
                    "HolidaysSchedule": null,
                    "ConsiderWorkingWeekends": "YES"
                },
                "Status": "DRAFT",
                "TextCampaign": {
                    "BiddingStrategy": {
                        "Search": {
                            "BiddingStrategyType": "HIGHEST_POSITION"
                        },
                        "Network": {
                            "BiddingStrategyType": "NETWORK_DEFAULT",
                            "NetworkDefault": {
                                "BidPercent": 100
                            }
                        }
                    }
                },
                "StartDate": "2017-08-17",
                "Name": "Test API Sandbox campaign 2",
                "Type": "TEXT_CAMPAIGN",
                "TimeZone": "Europe/Moscow"
            },
            {
                "ExcludedSites": null,
                "NegativeKeywords": {
                    "Items": [
                        "keyword1",
                        "keyword2",
                        "keyword3"
                    ]
                },
                "BlockedIps": null,
                "EndDate": null,
                "Id": 228863,
                "TimeTargeting": {
                    "Schedule": {
                        "Items": [
                            "1,0,0,0,0,0,0,0,0,100,100,100,100,100,100,0,100,100,100,100,100,100,0,0,0",
                            "2,0,0,0,0,0,0,0,0,100,100,100,100,100,100,0,100,100,100,100,100,100,0,0,0",
                            "3,0,0,0,0,0,0,0,0,100,100,100,100,100,100,0,100,100,100,100,100,100,0,0,0",
                            "4,0,0,0,0,0,0,0,0,100,100,100,100,100,100,0,100,100,100,100,100,100,0,0,0",
                            "5,0,0,0,0,0,0,0,0,100,100,100,100,100,100,0,100,100,100,100,100,100,0,0,0",
                            "6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0",
                            "7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"
                        ]
                    },
                    "HolidaysSchedule": null,
                    "ConsiderWorkingWeekends": "YES"
                },
                "DailyBudget": null,
                "TextCampaign": {
                    "BiddingStrategy": {
                        "Search": {
                            "BiddingStrategyType": "HIGHEST_POSITION"
                        },
                        "Network": {
                            "NetworkDefault": {
                                "BidPercent": 100
                            },
                            "BiddingStrategyType": "NETWORK_DEFAULT"
                        }
                    }
                },
                "StartDate": "2017-08-17",
                "Status": "DRAFT",
                "Type": "TEXT_CAMPAIGN",
                "TimeZone": "Europe/Moscow",
                "Name": "Test API Sandbox campaign 3"
            }
        ]
    }
}

Вывожу так
PHP
1
2
3
4
5
6
7
8
9
10
11
12
foreach ($info->result->Campaigns as $key => $value) {
 
echo '<tr id="tr_com'.$value->Id.'" class="order">
                                            <td><i class="plus 2rem material-icons" style="cursor:pointer;">arrow_drop_down</i> '.$value->Id.'</td>
                                            <td>'.$value->Name.'</td>
                                            <td>'.$value->Status.'</td>
                                            <td>'.$value->Type.'</td>
                                            <td>'.$value->StartDate.'</td>
                                            <td><a href="#" onclick="del_company('.$value->Id.')"><i class="2rem material-icons red-text">cancel</i></a></td>
                                          </tr>';
 
}
Пытаюсь достать более глубокие данные - НО НИКАК

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
foreach ($info->result->Campaigns as $key => $value) {
foreach ($value->TextCampaign->BiddingStrategy as $key => $value2) {
                                                        foreach ($value2['Search'] as $key => $value3) {
                                                        echo '<b>BiddingStrategyType:</b> '.$value3->BiddingStrategyType.'<br>';    
                                                }   
                                                }
 
                                                foreach ($value->TextCampaign->BiddingStrategy->Network->NetworkDefault as $key => $value2) {
                                                        echo '<b>BidPercent:</b> '.$value2['BidPercent'].'<br>';    
                                                }
 
                                                foreach ($value->TextCampaign->BiddingStrategy->Network as $key => $value2) {
                                                        echo '<b>BiddingStrategyType:</b> '.$value2->BiddingStrategyType.'<br>';    
                                                }
}
ПРОБЛЕМА: как достать данные

JSON
1
2
3
4
5
6
7
8
9
10
11
12
13
"TextCampaign": {
                    "BiddingStrategy": {
                        "Search": {
                            "BiddingStrategyType": "HIGHEST_POSITION"
                        },
                        "Network": {
                            "BiddingStrategyType": "NETWORK_DEFAULT",
                            "NetworkDefault": {
                                "BidPercent": 100
                            }
                        }
                    }
                }
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.08.2017, 16:10
Ответы с готовыми решениями:

Вывести данные из JSON ответа
Всем привет:), нужна помощь, буду очень благодарен, если поможете. Мне нужно, чтобы вывелся username из members через запятую из этого...

Как вывести несколько id из JSON ответа
Вот, что выдает json: { &quot;user&quot;: { &quot;id&quot;: 1 } }, &quot;friends&quot;: }

Обработка json или xml ответа из Яндекс метрики
Все токены ID и пароли знаю. Когда вбиваю url с данными получаю ответ от яндекс метрики со статистикой. Он может быть и в json и в xml. Как...

6
ytf
276 / 259 / 185
Регистрация: 15.08.2017
Сообщений: 1,483
21.08.2017, 22:41
реклама - это чушь, надо использовать каталог сайтов с возможностью для пользователей сравнивать сайты
-1.50
0 / 0 / 1
Регистрация: 15.01.2011
Сообщений: 97
23.08.2017, 09:50  [ТС]
Цитата Сообщение от ytf Посмотреть сообщение
реклама - это чушь, надо использовать каталог сайтов с возможностью для пользователей сравнивать сайты
Самый нужный ответ
0
321 / 189 / 78
Регистрация: 04.10.2016
Сообщений: 809
24.08.2017, 12:01
Цитата Сообщение от igorek1991 Посмотреть сообщение
Пытаюсь достать
PHP
1
2
3
4
$jd = json_decode($json);
foreach($jd->result->Campaigns as $k=>$v){
    echo "BidPercent: ".$v->TextCampaign->BiddingStrategy->Network->NetworkDefault->BidPercent."<br>";
}
Добавлено через 2 минуты
либо так:
PHP
1
2
3
4
$jd = json_decode($json);
foreach($jd->result->Campaigns as $a){
    echo "BidPercent: ".$a->TextCampaign->BiddingStrategy->Network->NetworkDefault->BidPercent."<br>";
}
1
0 / 0 / 1
Регистрация: 15.01.2011
Сообщений: 97
24.08.2017, 14:05  [ТС]
Красиво), спасибо

Есть еще вопрос:

Ответ получаю такой:
JSON
1
"2017-08-24 (2017-08-21 - 2017-08-23)" Date CampaignId  Clicks  ClickType   Cost    Conversions 2017-08-21  228861  14041   UNKNOWN 9515100000  0 2017-08-22    228861  12617   UNKNOWN 9472950000  0 2017-08-23    228861 12803    UNKNOWN 9296100000  0 Total rows: 3
Как мне из этого текста ухватить заголовки и данные по датам?
0
321 / 189 / 78
Регистрация: 04.10.2016
Сообщений: 809
24.08.2017, 18:57
Цитата Сообщение от igorek1991 Посмотреть сообщение
ухватить заголовки и данные по датам?
пример накидайте. я, лично, без понятия, что вам точно нужно, а с датами проблем нет
1
0 / 0 / 1
Регистрация: 15.01.2011
Сообщений: 97
25.08.2017, 11:05  [ТС]
Вот ответ от сервера:
"2017-08-24 (2017-08-21 - 2017-08-23)" Date CampaignId Clicks ClickType Cost Conversions 2017-08-21 228861 13563 UNKNOWN 9856650000 0 2017-08-22 228861 12440 UNKNOWN 9430800000 0 2017-08-23 228861 12681 UNKNOWN 8756850000 0 Total rows: 3
Его необходимо преобразовать, т.е чтобы я смог данные раскидать по таблице
ПРИМЕРНО ТАК:

Date CampaignId Clicks ClickType Cost Conversions
2017-08-21 228861 13563 UNKNOWN 9856650000 0
2017-08-22 228861 12440 UNKNOWN 9430800000 0
2017-08-23 228861 12681 UNKNOWN 8756850000 0

Добавлено через 14 часов 39 минут
Наверное придется копать в сторону регулярных выражений

Добавлено через 23 минуты
Даже вот в таком формате ответ поступает
HTML5
1
2
3
4
5
6
7
<pre>"2017-08-24 (2017-08-22 - 2017-08-24)"
Date    CampaignId  Clicks  ClickType   Cost    Conversions
2017-08-22  228861  12746   UNKNOWN 9256500000  0
2017-08-23  228861  12991   UNKNOWN 9172500000  0
2017-08-24  228861  12958   UNKNOWN 9436950000  0
Total rows: 3
</pre>
Добавлено через 10 минут
Отчет формируется в формате TSV.

Первая строка отчета содержит название отчета, заданное в параметре ReportName, и даты начала и окончания отчетного периода. Строка не выводится, если в запросе указан HTTP-заголовок skipReportHeader: true.

Вторая строка содержит наименования полей (столбцов), заданные в параметре FieldNames. Строка не выводится, если в запросе указан HTTP-заголовок skipColumnHeader: true.

Следующие строки содержат статистику — значения полей.

Последняя строка отчета содержит количество строк со статистикой. Строка не выводится, если в запросе указан HTTP-заголовок skipReportSummary: true.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.08.2017, 11:05
Помогаю со студенческими работами здесь

Получение данных из JSON-ответа
С сервера приходит такой ответ. Я его решил декодировать из json.$page =json_decode(curl_exec($ch)); и теперь ответ стал таким Как мне...

Получить значение ответа. JSON
Имеется ответ от сервера такого вида { &quot;status&quot; : &quot;success&quot;, &quot;data&quot; : { &quot;network&quot; : &quot;BTC&quot;, &quot;user_id&quot; : 7, ...

Символ \ufeff в конце json-ответа
Добрый день уважаемые форумчане! Возникла проблема которую не можем решить всей командой. На yii2 написан бекэнд, ответы в json через...

Получение JSON ответа и внесение его в переменную
Приветствую всех. Вопрос заключается в следующем, я получаю CODE и Access token пользователя(проверялось), но при попытке его использовать...

Обработка TSV ответа
Добрый день, получаю ответ в формате TSV. Как спарсить данные и загнать в таблицу? &quot;2017-08-24 (2017-08-22 - 2017-08-24)&quot;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru