@santavits

Как распарсить json ответ?

это получаю в $result
{"orders":{"7690218":{"id":"7690218","obj":"wall35173603_613","act":"vk_like","status":"works","timeout":"10","count":"5","count_good":"0","start":"16:21 06.09.2018","criterion":"no"}}}

нужны значения status и count_good
это число "7690218" если что хранится у меня в данной переменной
$orderapi
  • Вопрос задан
  • 153 просмотра
Решения вопроса 1
sanek_os9
@sanek_os9
Работаю с Laravel, Vue, Vuetify, AWS Amazon, Linux
$orderapi = 7690218;
$result = json_decode('{"orders":{"7690218":{"id":"7690218","obj":"wall35173603_613","act":"vk_like","status":"works","timeout":"10","count":"5","count_good":"0","start":"16:21 06.09.2018","criterion":"no"}}}');
$status = $result->orders->$orderapi->status; // works
$count_good = $result->orders->$orderapi->count_good; // 0
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
Stimulate
@Stimulate
могу
echo '<pre>';
print_r(json_decode($orderapi));
echo '</pre>';
Ответ написан
m0pfin
@m0pfin
$details = json_decode(file_get_contents("http://www.geoplugin.net/json.gp?ip={$ip}"));
$city = $details->{'geoplugin_city'}; // Город
$region = $details->{'geoplugin_region'}; // Регион
$country = $details->{'geoplugin_countryCode'}; // Код страны

Для примера
$details = json_decode(file_get_contents("http://www.geoplugin.net/json.gp?ip={$ip}"));
echo $details;

Посмотри что отдает просто Json_decode и что я выдираю, и поймешь как работает
P.S. в переменную $ip не зубдь IP засунуть
Ответ написан
Комментировать
@Pavel333
Можно добавить флаг true к функции json_decode($json, true). Тогда получишь набор вложенных массивов, соответственно извлекать данные сможешь через квадратные скобки, а не вызовы свойств из объектов. Так же сможешь использовать цикл foreach и другие функции работы с массивами.

Пример от Александр Шаповал будет выглядеть так:
$orderapi = 7690218;

$result = json_decode('{"orders":{"7690218":{"id":"7690218","obj":"wall35173603_613","act":"vk_like","status":"works","timeout":"10","count":"5","count_good":"0","start":"16:21 06.09.2018","criterion":"no"}}}', true);

$status = $result['orders'][$orderapi]['status']; //works
$count_good = $result['orders'][$orderapi]['count_good']; //0
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы