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

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

20.08.2017, 16:10. Показов 2382. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru