Форум программистов, компьютерный форум, киберфорум
PHP
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 12.03.2017
Сообщений: 21

Подскажите как убоать квадратные скобки в которые оборачивается массив при выводе в json файл

14.05.2022, 12:52. Показов 1505. Ответов 1

Студворк — интернет-сервис помощи студентам
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?php
// на какие данные рассчитан этот скрипт
header("Content-Type: application/json; charset=utf-8");
// 1. Получаем данные от страницы
$data = json_decode(file_get_contents("php://input"));
// 2. Проверяем, есть ли на сервере нужный нам файл с данными — json.data.
// Берём новую переменную и пишем в неё имя файла
$filename = 'dataM.json';
// 3. Если есть — запоминаем его содержимое, а если такого файла нет — создаём его отдельной командой.
if (file_exists($filename)) {
    // Если файл есть — открываем его и читаем данные
    $file = file_get_contents('dataM.json');
    // Если такого файла нет…
} else {
// …то создаём его сами
    $file = fopen("dataM.json", "a+");
}
// 4/ Всё, что было в этом файле, переводим в массив, с которым умеет работать PHP. Таким способом у нас каждая JSON-запись будет храниться в отдельной ячейке массива.
$taskList = json_decode($file, true);
// 5. Добавляем новую запись в этот массив — кладём в него то, что пришло со страницы.
$taskList['features'][] = array($data);
// 6. Записываем это всё обратно в файл и тут же читаем обратно из него — так мы убедимся, что запись прошла нормально и мы можем с этим работать.
// Записываем данные в файл…
//$taskList=str_replace(array(']','['),'',$taskList);
//$taskList = trim($taskList, '[]');
//$row = json_encode(array_pop($stmt->fetchAll(PDO::FETCH_OBJ)));
file_put_contents('dataM.json', json_encode($taskList)); //.str_replace(array(']','['),''));
 
// …и сразу считываем их обратно
$file = file_get_contents('dataM.json'); // Открыть файл data.json
// 7. Отправляем всё содержимое файла на страницу, чтобы там увидеть, что сервер работает как нужно.
echo $file;
// Освобождаем память от переменных, которые нам пока не нужны
unset($file);
unset($taskList);
Вот какой json получается (выбелил лишнюю скобку от массива кавычками """[""")
JSON
1
2
3
4
 
{"type":"FeatureCollection","features":["""["""
    {"type":"Feature","geometry":{"type":"Point","coordinates":[55.8010000000000019326762412674725055694580078125,37.8233000000000032514435588382184505462646484375],"balloonContent":""}}"""]""",
    """["""{"type":"Feature","geometry":{"type":"Point","coordinates":[55.59320000000000305817593471147119998931884765625,37.5720000000000027284841053187847137451171875],"balloonContent":""}}]"""]"""}
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
  // эта функция сработает при нажатии на кнопку
  function sendJSON() {
    // с помощью jQuery обращаемся к элементам на странице по их именам
    let marker_name = document.querySelector('#marker_name');
    let marker_koords = document.querySelector('#marker_koords');
    // а вот сюда мы поместим ответ от сервера
    let result = document.querySelector('.result');
    // создаём новый экземпляр запроса XHR
    let xhr = new XMLHttpRequest();
    // адрес, куда мы отправим нашу JSON-строку
    let url = "http://j96718cp.beget.tech/json.php";
    // открываем соединение
    xhr.open("POST", url, true);
    // устанавливаем заголовок — выбираем тип контента, который отправится на сервер, в нашем случае мы явно пишем, что это JSON
    xhr.setRequestHeader("Content-Type", "application/json; charset=utf-8");
    // когда придёт ответ на наше обращение к серверу, мы его обработаем здесь
    xhr.onreadystatechange = function () {
      // если запрос принят и сервер ответил, что всё в порядке
      if (xhr.readyState === 4 && xhr.status === 200) {
        // выводим то, что ответил нам сервер — так мы убедимся, что данные он получил правильно
        result.innerHTML = this.responseText;
      }
    };
    
    var points = marker_koords.value.split(', ');
    
    // преобразуем наши данные JSON в строку
    var data = JSON.stringify({
        "type": "Feature", 
        "geometry": { 
            "type": "Point", 
            "coordinates": [parseFloat(points[0]), parseFloat(points[1])], 
            "balloonContent": marker_name.value 
        }
        
    });
    // когда всё готово, отправляем JSON на сервер
    xhr.send(data);
  }
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.05.2022, 12:52
Ответы с готовыми решениями:

LINQ. При выводе на консоль появляются квадратные скобки
Добрый день прошу помощи. При разработке Парсера на С# столкнулся с проблемой. А именно при выводе на консоль появляться...

Подскажите как поставить абзац при выводе в файл
Подскажите как поставить абзац в этой строчке System.IO.File.AppendAllText(&quot;C:\\pass\\Passwords.txt&quot;, string.Format(&quot;{0} {1}...

Для чего квадратные скобки, в которые заключаются операторы
подскажите люди добрые что значит такая запись void TraceMethod() {} содержимое квадратных скобок может отличаться, просто...

1
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
14.05.2022, 13:48
Лучший ответ Сообщение было отмечено Ghost_1498 как решение

Решение

PHP
1
$taskList['features'][] = array($data);
замените на
PHP
1
$taskList['features'][] = $data;
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.05.2022, 13:48
Помогаю со студенческими работами здесь

Обработка строк: взять все слова, которые состоят из заглавных букв, в квадратные скобки
Здравствуйте,разбираюсь с работой строк в Python,и слегка застряг на одном задании. Задание заключается в том,что-бы взять все слова...

Круглые и квадратные скобки при операторе new
Требуются помощь в использовании оператора new! И так для начала вопросы для понимания, что произойдет при выполнении 2-ух вариантов кода...

Strpos вроде видит квадратные скобки, но результат в массив не передается
Есть файл с проверочным кодом в двух видах: в первом варианте переменные получают данные из функций, во втором из текста. Назвал файл...

Почему в цикле используются квадратные скобки при присвоении словаря?
&gt;&gt;&gt; dict = {} &gt;&gt;&gt; list = &gt;&gt;&gt; for x in range(0,100): ... dict = x ... list.append(dict) ... &gt;&gt;&gt; print...

Как упорядочить объекты из JSON при выводе в Angular?
Есть файл json в котором хранятся объекты, которые выводится в приложений Angular. { &quot;id&quot;: 2861, ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru