Всем привет! Отправляю запрос на сайт с данными Получаю ответ: Код (Text): {"status":"success","result":{"fines":[{"type":"DRIVER_LICENSE","number":"23\u0410\u0423764839","uin":"18810023180004298388","paymentLink":"https:\/\/money.yandex.ru\/debts?uin=18810023180004298388&fineApiAgentId=6&ref=api","fine":{"billDate":"2018-05-12T00:00:00+03:00","sum":1500,"discountedSum":750,"discountDate":"2018-06-01T00:00:00+03:00"}},{"type":"VEHICLE_REG_CERTIFICATE","number":"2335986941","uin":"18810123180215166075","paymentLink":"https:\/\/money.yandex.ru\/debts?uin=18810123180215166075&fineApiAgentId=6&ref=api","fine":{"billDate":"2018-02-15T00:00:00+03:00","sum":500}},{"type":"VEHICLE_REG_CERTIFICATE","number":"2335986941","uin":"18810123171211169319","paymentLink":"https:\/\/money.yandex.ru\/debts?uin=18810123171211169319&fineApiAgentId=6&ref=api","fine":{"billDate":"2017-12-11T00:00:00+03:00","sum":1000}}]}} В данном ответе показано,что найдено 3 записи. 1- я fines[0] type= DRIVER_LICENSE, number=23АУ764839, uin=18810023180004298388 2- z fines[1] type= VEHICLE_REG_CERTIFICATE, number=2335986941, uin=18810123180215166075 3- z fines[2] type= VEHICLE_REG_CERTIFICATE, number=2335986941, uin=18810123171211169319 как мне обработать ответ чтобы предоставить эти данные для пользователя в виде как во вложении???
Вот что сделано PHP: $json_a = json_decode($result); var_dump($json_a); выводит Код (Text): object(stdClass)#1 (2) { ["status"]=> string(7) "success" ["result"]=> object(stdClass)#2 (1) { ["fines"]=> array(3) { [0]=> object(stdClass)#11 (5) { ["type"]=> string(14) "DRIVER_LICENSE" ["number"]=> string(12) "23АУ764839" ["uin"]=> string(20) "18810023180004298388" ["paymentLink"]=> string(79) "https://money.yandex.ru/debts?uin=18810023180004298388&fineApiAgentId=6&ref=api" ["fine"]=> object(stdClass)#12 (4) { ["billDate"]=> string(25) "2018-05-12T00:00:00+03:00" ["sum"]=> int(1500) ["discountedSum"]=> int(750) ["discountDate"]=> string(25) "2018-06-01T00:00:00+03:00" } } [1]=> object(stdClass)#13 (5) { ["type"]=> string(23) "VEHICLE_REG_CERTIFICATE" ["number"]=> string(10) "2335986941" ["uin"]=> string(20) "18810123180215166075" ["paymentLink"]=> string(79) "https://money.yandex.ru/debts?uin=18810123180215166075&fineApiAgentId=6&ref=api" ["fine"]=> object(stdClass)#14 (2) { ["billDate"]=> string(25) "2018-02-15T00:00:00+03:00" ["sum"]=> int(500) } } [2]=> object(stdClass)#15 (5) { ["type"]=> string(23) "VEHICLE_REG_CERTIFICATE" ["number"]=> string(10) "2335986941" ["uin"]=> string(20) "18810123171211169319" ["paymentLink"]=> string(79) "https://money.yandex.ru/debts?uin=18810123171211169319&fineApiAgentId=6&ref=api" ["fine"]=> object(stdClass)#16 (2) { ["billDate"]=> string(25) "2017-12-11T00:00:00+03:00" ["sum"]=> int(1000) } } } } } Как мне посчитать количество ["fines"] (НЕ В УМЕ А В КОДЕ!) --- Добавлено --- писал выше --- Добавлено --- если я сделаю так PHP: $uin= $obj->result->fines[0]->uin; echo $uin; Выводится :18810023180004298388 Все работает!НО как мне в коде посчитать количество fines[?] Как???
@dergnol, с первого твоего сообщения сижу и жду когда дело проясниться, чтобы понять что тебе надо Если ты хочешь с этими данным работать на клиенте, выставь соответствующий заголовок при отдаче с сервера А на клиенте ты уже сможешь работать с этим Json как с объектом. json.length
Если бы я понял, что ты написал,я бы наверное не обращался за помощью!!! Подробнее можно?! Заголовок стоит PHP: header('Content-type:application/json;charset=utf-8'); --- Добавлено --- если я сделаю так PHP: $uin1= $obj->result->fines[0]->uin; echo $uin;// РЕЗУЛЬТАТ 18810023180004298388 $uin2= $obj->result->fines[1]->uin; echo $uin;// РЕЗУЛЬТАТ 18810123180215166075 $uin3= $obj->result->fines[2]->uin; echo $uin;// РЕЗУЛЬТАТ 18810123171211169319 А если fines[] будет больше или меньше 3-х как мне их посчитать(скриптом) и продолжить или на оборот уменьшить количество выводимых данных???
@dergnol, после заголовка шли свой Json клиенту. На клиенте остается обработать json как тебе надо. --- Добавлено --- Не делай так. Раз ты выставил заголовок, что данные ты будешь слать json ну так шли в json, ибо клиент другого не ждет.
Нy тогда обработай данные на сервере, генерируй html и выплевывай клиенту. Только заголовок убери. Для перебора массива использовать можешь foreach для подсчета количества элементов массива count()
Похоже придется писать код с большим запасом PHP: <?php //header('Content-type:application/json;charset=utf-8'); $result = '{"status":"success","result":{"fines":[{"type":"DRIVER_LICENSE","number":"23\u0410\u0423764839", "uin":"18810023180004298388","paymentLink":"https:\/\/money.yandex.ru\/debts?uin=18810023180004298388&fineApiAgentId=6&ref=api", "fine":{"billDate":"2018-05-12T00:00:00+03:00","sum":1500,"discountedSum":750, "discountDate":"2018-06-01T00:00:00+03:00"}},{"type":"VEHICLE_REG_CERTIFICATE", "number":"2335986941","uin":"18810123180215166075", "paymentLink":"https:\/\/money.yandex.ru\/debts?uin=18810123180215166075&fineApiAgentId=6&ref=api", "fine":{"billDate":"2018-02-15T00:00:00+03:00","sum":500}},{"type":"VEHICLE_REG_CERTIFICATE", "number":"2335986941","uin":"18810123171211169319", "paymentLink":"https:\/\/money.yandex.ru\/debts?uin=18810123171211169319&fineApiAgentId=6&ref=api", "fine":{"billDate":"2017-12-11T00:00:00+03:00","sum":1000}}]}}'; $obj=json_decode($result); $kolvo=count ( $obj->result->fines ); $uin1= $obj->result->fines[0]->uin; $uin2= $obj->result->fines[1]->uin; $uin3= $obj->result->fines[2]->uin; $uin4= $obj->result->fines[3]->uin; $uin5= $obj->result->fines[4]->uin; $uin6= $obj->result->fines[5]->uin; $uin7= $obj->result->fines[6]->uin; $uin8= $obj->result->fines[7]->uin; $uin9= $obj->result->fines[8]->uin; $uin10= $obj->result->fines[9]->uin; echo "<b>Найдено записей:</b> <u>$kolvo</u> <br/>"; echo "1 $uin1 <br/>"; echo "2 $uin2 <br/>"; echo "3 $uin3 <br/>"; echo "4 $uin4 <br/>"; echo "5 $uin5 <br/>"; echo "6 $uin6 <br/>"; echo "7 $uin7 <br/>"; echo "8 $uin8 <br/>"; echo "9 $uin9 <br/>"; echo "10 $uin10 <br/>"; ?>