PHP — Преобразование в json. В прошлой статье мы получили данные из бд и предварительно их обработали до формата json. Выглядит он неполноценно, но тем не менее это json. В этой статье мы с вами приведем этот json в человеко-читабельный вид.
PHP — Преобразование в json
Вспомним из прошлой статьи, что наш json не имеет индексов у столбцов. У него имеются значения и разделитесь. Мы привели его в такой вид командой:
1 2 |
/*Преобразуем строки в json и не преобразуем юникод*/ $toJsonResult = json_encode($agrResult, JSON_UNESCAPED_UNICODE); |
Для того, чтобы нам сделать новый json, необходимо записать все имеющиеся значения в массив с индексами. Названия в нем можно создать произвольные, как вам угодно. У меня получилась такая строка:
1 2 |
/*Преобразуем json без полей в массив с полями. Разделитель запятая.*/ list($id, $topic, $headline, $objective, $example, $pageVisits, $countOfSuccessful, $countOfInvalid, $exampleViewAnswer, $interactiveUserExample) = explode(",", $toJsonResult); |
Теперь уже из этого массива мы можем создать новый json-объект и сразу его проинициализировать соответствующими значениями:
1 2 3 4 5 6 7 8 9 10 11 12 |
/*Создаем новый объект и вписываем в поля нужные данные из массива*/ $newTestParametersObject = [ "title" => $headline, "headline" => $headline, "descriptionOfTest" => $objective, "example" => $example, "loadings" => $pageVisits, "countSuccess" => $countOfSuccessful, "countFailed" => $countOfInvalid, "rightAnswer" => $exampleViewAnswer, "teach" => $interactiveUserExample ]; |
Как видите, не обязательно соблюдать последовательность перебора массива, так как мы обращаемся к нему не циклом, а просто индексом. В итоге мы получили следующие индексы в массиве:
Title
Headline
descriptionOfTest
example
loadings
countSuccess
countFailed
rightAnswer
teach
Если мы попробуем вызвать этот объект через конструкцию echo $newTestsParametersObject, то получим ошибку:
1 |
Notice: Array to string conversion in /var/www/u0338335/data/www/pechenek.net/tests/handler/TestsBackendHandler.php on line 51 Array |
А если мы попробуем вывести конкретный элемент, то его значения отобразится в читабельном виде:
1 |
echo $newTestParametersObject["title"]; |
На странице в браузере:
1 |
"Тест по функции calc в CSS." |
На этом все. В следующей статье мы займемся обработкой этого json-массива: удалим лишние символы и научимся его возвращать на необходимую страницу. Разместим каждый элемент в нужном месте для правильного отображения элементов на своих местах.
Подписывайтесь на нашу группу в ВК и на наш ютуб канал!