SpiderPigAndCat
@SpiderPigAndCat
занимаюсь салообразованием

Как преобразовать строку в массив js?

нужно получить такой формат массива
todo_arr:[
    {id:"1", text:"купить1", status: false },
    {id:"2", text:"купить2", status: false },
    {id:"3", text:"купить3", status: false },
    {id:"4", text:"купить4", status: false },
],


у меня в бд хранятся все эти значения id text ststus я вывожу их на отдельную страницу и с помощью axios беру содержимое страницы
axios.get("http://test.smile-bus.crimea.ua/todo/get.php").then(response => (this.info = response));


в php вывожу так
echo "[";
while ($result = mysqli_fetch_array($sql)) {
     echo "{id:{$result['todo_id']}, text:'{$result['text']}', status:{$result['status']}},";

}
echo "],";

вот что выводится
[{id:5, text:'Привет, Vue!', status:false},{id:5, text:'Привет, Vue!', status:false},{id:1, text:'Привет, Vue!', status:false},{id:1, text:'Привет, Vue!', status:false},{id:1, text:'Привет, Vue!', status:false},{id:5, text:'Привет, Vue!', status:false},{id:5, text:'Привет, Vue!', status:false},{id:5, text:'Привет, Vue!', status:false},],

и в this.info.data получаю строку, но как ее преобразовать в нужный формат? через split(",") выводит только часть обьекта.
Как из строки получить тот формат, что надо?

Я могу сделать три файла, один на каждый параметр и вынимать каждый в свою переменную и собрать как надо, но это бред)
  • Вопрос задан
  • 201 просмотр
Решения вопроса 1
Используй формат JSON с обоих сторон.

1) нужно чтобы php выводил данные в JSON формате.
(А не как ты колхозишь строки в нечто, что ты называешь массивом)
Сделать можно с помощью встроенной функции json_encode()

2) в javascript тебе надо получить JSON в виде строки и распарсить его в javascript-массив с помощью встроенной функции JSON.parse()

Таким образом, используюя единый формат, ты упростишь себе и другим жизнь и не будешь изобретать велосипед.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
20 сент. 2020, в 10:33
10000 руб./за проект
20 сент. 2020, в 10:28
6000 руб./за проект
19 сент. 2020, в 23:47
5000 руб./за проект