Как можно перевести массив данных, добавленный в текстовое поле в JSON?

Рейтинг: 0Ответов: 1Опубликовано: 12.01.2023

У меня есть массив с данными.

Этот массив я хочу добавить в базу данных через textarea, и потом так же выводить где мне нужно.

Решил использовать JSON

Как вывести JSON и вернуть ему вид нормального массива я уже решил.

Но как при сохранении в базу конвертировать этот массив в json?

Ведь при сохранении массива через textarea он является строкой, а не массивом, поэтому json_encode так просто не работает

Такой массив я ввожу в textarea

[
[
'id' => '2',
'type' => 'text',
'testable' => '1',
'score' => '1',
'question' => 'question 1',
'answer' => 'answer 1',
],[
'id' => '3',
'type' => 'text',
'testable' => '1',
'score' => '1',
'question' => 'questions 2',
'answer' => ['answer 1', 'answer 2', 'answer 3', ],
],]

Такой JSON я хочу получить при сохранении

[
{
    "id": "2",
    "type": "text",
    "testable": "1",
    "score": "1",
    "question": "question 1",
    "answer": "answer 1"
},
{
    "id": "3",
    "type": "text",
    "testable": "1",
    "score": "1",
    "question": "questions 2",
    "answer": ["answer 1", "answer 2", "answer 3"]
}]

Ответы

▲ 0Принят
json_decode('{"key":"это ваша строка json-a"}', true) - вернет вам ассоциативный масси
json_encode(["ваш массив"]) - вернет вам строку в формате json

Можно сразу сказать, что в определенных моментах, хранение json-а в СУРБД оправдано, подумайте, ваш ли это случай или же вам проще разобрать его и хранить каждое поле в отдельном столбце.