За последние 24 часа нас посетили 21745 программистов и 1020 роботов. Сейчас ищут 659 программистов ...

Разбор ответа json

Тема в разделе "Сделайте за меня", создана пользователем dergnol, 19 май 2018.

Метки:
  1. dergnol

    dergnol Новичок

    С нами с:
    15 май 2018
    Сообщения:
    22
    Симпатии:
    0
    Всем привет!
    Отправляю запрос на сайт с данными
    Получаю ответ:

    Код (Text):
    1. {"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

    как мне обработать ответ чтобы предоставить эти данные для пользователя в виде как во вложении???
     

    Вложения:

    • e.jpg
      e.jpg
      Размер файла:
      38,5 КБ
      Просмотров:
      6
  2. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.989
    Симпатии:
    759
    сформировать html, написать css стили
     
  3. dergnol

    dergnol Новичок

    С нами с:
    15 май 2018
    Сообщения:
    22
    Симпатии:
    0
    Это конечно так,но с начало мне надо json перевести в читабельный вид
     
  4. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.748
    Симпатии:
    1.321
    Адрес:
    Лень
    json_decode
     
  5. dergnol

    dergnol Новичок

    С нами с:
    15 май 2018
    Сообщения:
    22
    Симпатии:
    0
    Да это сделано давным-давно
     
  6. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.072
    Симпатии:
    1.237
    Адрес:
    там-сям
    читабельный для кого? var_export()
     
  7. dergnol

    dergnol Новичок

    С нами с:
    15 май 2018
    Сообщения:
    22
    Симпатии:
    0
    Вот что сделано
    PHP:
    1. $json_a = json_decode($result);
    2.      var_dump($json_a);
    выводит

    Код (Text):
    1. object(stdClass)#1 (2) {
    2.   ["status"]=>
    3.   string(7) "success"
    4.   ["result"]=>
    5.   object(stdClass)#2 (1) {
    6.     ["fines"]=>
    7.     array(3) {
    8.       [0]=>
    9.       object(stdClass)#11 (5) {
    10.         ["type"]=>
    11.         string(14) "DRIVER_LICENSE"
    12.         ["number"]=>
    13.         string(12) "23АУ764839"
    14.         ["uin"]=>
    15.         string(20) "18810023180004298388"
    16.         ["paymentLink"]=>
    17.         string(79) "https://money.yandex.ru/debts?uin=18810023180004298388&fineApiAgentId=6&ref=api"
    18.         ["fine"]=>
    19.         object(stdClass)#12 (4) {
    20.           ["billDate"]=>
    21.           string(25) "2018-05-12T00:00:00+03:00"
    22.           ["sum"]=>
    23.           int(1500)
    24.           ["discountedSum"]=>
    25.           int(750)
    26.           ["discountDate"]=>
    27.           string(25) "2018-06-01T00:00:00+03:00"
    28.         }
    29.       }
    30.       [1]=>
    31.       object(stdClass)#13 (5) {
    32.         ["type"]=>
    33.         string(23) "VEHICLE_REG_CERTIFICATE"
    34.         ["number"]=>
    35.         string(10) "2335986941"
    36.         ["uin"]=>
    37.         string(20) "18810123180215166075"
    38.         ["paymentLink"]=>
    39.         string(79) "https://money.yandex.ru/debts?uin=18810123180215166075&fineApiAgentId=6&ref=api"
    40.         ["fine"]=>
    41.         object(stdClass)#14 (2) {
    42.           ["billDate"]=>
    43.           string(25) "2018-02-15T00:00:00+03:00"
    44.           ["sum"]=>
    45.           int(500)
    46.         }
    47.       }
    48.       [2]=>
    49.       object(stdClass)#15 (5) {
    50.         ["type"]=>
    51.         string(23) "VEHICLE_REG_CERTIFICATE"
    52.         ["number"]=>
    53.         string(10) "2335986941"
    54.         ["uin"]=>
    55.         string(20) "18810123171211169319"
    56.         ["paymentLink"]=>
    57.         string(79) "https://money.yandex.ru/debts?uin=18810123171211169319&fineApiAgentId=6&ref=api"
    58.         ["fine"]=>
    59.         object(stdClass)#16 (2) {
    60.           ["billDate"]=>
    61.           string(25) "2017-12-11T00:00:00+03:00"
    62.           ["sum"]=>
    63.           int(1000)
    64.         }
    65.       }
    66.     }
    67.   }
    68. }

    Как мне посчитать количество ["fines"] (НЕ В УМЕ А В КОДЕ!)
    --- Добавлено ---
    писал выше

    --- Добавлено ---
    если я сделаю так
    PHP:
    1. $uin= $obj->result->fines[0]->uin;
    2. echo $uin;
    Выводится :18810023180004298388 Все работает!НО как мне в коде посчитать количество fines[?] Как???
     
  8. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.632
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    @dergnol, с первого твоего сообщения сижу и жду когда дело проясниться, чтобы понять что тебе надо:D
    Если ты хочешь с этими данным работать на клиенте, выставь соответствующий заголовок при отдаче с сервера
    А на клиенте ты уже сможешь работать с этим Json как с объектом.

    json.length
     
  9. dergnol

    dergnol Новичок

    С нами с:
    15 май 2018
    Сообщения:
    22
    Симпатии:
    0
    Если бы я понял, что ты написал,я бы наверное не обращался за помощью!!!
    Подробнее можно?! Заголовок стоит
    PHP:
    1. header('Content-type:application/json;charset=utf-8');
    --- Добавлено ---
    если я сделаю так
    PHP:
    1. $uin1= $obj->result->fines[0]->uin;
    2. echo $uin;// РЕЗУЛЬТАТ 18810023180004298388
    3. $uin2= $obj->result->fines[1]->uin;
    4. echo $uin;// РЕЗУЛЬТАТ 18810123180215166075
    5. $uin3= $obj->result->fines[2]->uin;
    6. echo $uin;// РЕЗУЛЬТАТ 18810123171211169319
    А если fines[] будет больше или меньше 3-х как мне их посчитать(скриптом) и продолжить или на оборот уменьшить количество выводимых данных???
     
    #9 dergnol, 19 май 2018
    Последнее редактирование: 19 май 2018
  10. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.632
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    @dergnol, после заголовка шли свой Json клиенту.
    На клиенте остается обработать json как тебе надо.
    --- Добавлено ---
    Не делай так. Раз ты выставил заголовок, что данные ты будешь слать json ну так шли в json, ибо клиент другого не ждет.
     
  11. dergnol

    dergnol Новичок

    С нами с:
    15 май 2018
    Сообщения:
    22
    Симпатии:
    0
    Как? javascript! Не фига в нем не рублю
     
  12. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.632
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    Нy тогда обработай данные на сервере, генерируй html и выплевывай клиенту.
    Только заголовок убери.

    Для перебора массива использовать можешь foreach
    для подсчета количества элементов массива count()
     
  13. dergnol

    dergnol Новичок

    С нами с:
    15 май 2018
    Сообщения:
    22
    Симпатии:
    0
    пример можно по моим данным?
     
  14. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.748
    Симпатии:
    1.321
    Адрес:
    Лень
    count ( $obj->result->fines )
     
  15. dergnol

    dergnol Новичок

    С нами с:
    15 май 2018
    Сообщения:
    22
    Симпатии:
    0
    Не работает!
     
  16. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.748
    Симпатии:
    1.321
    Адрес:
    Лень
    что выводит ?
    --- Добавлено ---
    [​IMG]
    --- Добавлено ---
    Забей на пхп.
     
  17. dergnol

    dergnol Новичок

    С нами с:
    15 май 2018
    Сообщения:
    22
    Симпатии:
    0
    Похоже придется писать код с большим запасом

    PHP:
    1. <?php
    2. //header('Content-type:application/json;charset=utf-8');
    3.  
    4. $result = '{"status":"success","result":{"fines":[{"type":"DRIVER_LICENSE","number":"23\u0410\u0423764839",
    5. "uin":"18810023180004298388","paymentLink":"https:\/\/money.yandex.ru\/debts?uin=18810023180004298388&fineApiAgentId=6&ref=api",
    6. "fine":{"billDate":"2018-05-12T00:00:00+03:00","sum":1500,"discountedSum":750,
    7. "discountDate":"2018-06-01T00:00:00+03:00"}},{"type":"VEHICLE_REG_CERTIFICATE",
    8. "number":"2335986941","uin":"18810123180215166075",
    9. "paymentLink":"https:\/\/money.yandex.ru\/debts?uin=18810123180215166075&fineApiAgentId=6&ref=api",
    10. "fine":{"billDate":"2018-02-15T00:00:00+03:00","sum":500}},{"type":"VEHICLE_REG_CERTIFICATE",
    11. "number":"2335986941","uin":"18810123171211169319",
    12. "paymentLink":"https:\/\/money.yandex.ru\/debts?uin=18810123171211169319&fineApiAgentId=6&ref=api",
    13. "fine":{"billDate":"2017-12-11T00:00:00+03:00","sum":1000}}]}}';
    14.  
    15.  
    16. $obj=json_decode($result);  
    17. $kolvo=count ( $obj->result->fines );
    18. $uin1= $obj->result->fines[0]->uin;
    19. $uin2= $obj->result->fines[1]->uin;
    20. $uin3= $obj->result->fines[2]->uin;
    21. $uin4= $obj->result->fines[3]->uin;
    22. $uin5= $obj->result->fines[4]->uin;
    23. $uin6= $obj->result->fines[5]->uin;
    24. $uin7= $obj->result->fines[6]->uin;
    25. $uin8= $obj->result->fines[7]->uin;
    26. $uin9= $obj->result->fines[8]->uin;
    27. $uin10= $obj->result->fines[9]->uin;
    28. echo "<b>Найдено записей:</b> <u>$kolvo</u> <br/>";
    29. echo "1 $uin1 <br/>";
    30. echo "2 $uin2 <br/>";
    31. echo "3 $uin3 <br/>";
    32. echo "4 $uin4 <br/>";
    33. echo "5 $uin5 <br/>";
    34. echo "6 $uin6 <br/>";
    35. echo "7 $uin7 <br/>";
    36. echo "8 $uin8 <br/>";
    37. echo "9 $uin9 <br/>";
    38. echo "10 $uin10 <br/>";
    39.  
    40.  
    41.  
    42. ?>