Сохранение данных в нескольких строках JSON

В настоящее время у меня есть PHP и JS, сохраняющие мои данные в JSON.

Ниже приведен его код:

PHP:

<?php

$jsonString = file_get_contents('passwords.json');
$data = json_decode($jsonString, true);
// get the q parameter from URL
$q = $_REQUEST["q"];

$item = $_REQUEST["item"];

// or if you want to change all entries with activity_code "1"
foreach ($data["passwords"] as $key => $password) {
    echo $data["passwords"][$key]['timesToUse'] - 1;
    if ($password['password'] == $q) {

        $data["passwords"][$key]['timesToUse'] = $data["passwords"][$key]['timesToUse'] - 1;
        $data["passwords"][$key]['winningItem'] = $item;
    }
}


$newJsonString = json_encode($data);
file_put_contents('passwords.json', $newJsonString);

?>

JS:

var xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET", "passwords.php?q = "+passwords[i].password+"&item = "+winningItem.getFullName(), true);
xmlhttp.send();

Проблема, с которой я столкнулся, заключается в том, что изначально мой файл JSON выглядит так:

{"password":"IS360H","timesToUse":1,"winningItem":""}, 
{"password":"AGRD33","timesToUse":1,"winningItem":""},
{"password":"4BX0FV","timesToUse":1,"winningItem":""}, 
{"password":"99NOTX","timesToUse":1,"winningItem":""}, 
{"password":"X2Z8BO","timesToUse":1,"winningItem":""}, 
{"password":"R9G4Q0","timesToUse":1,"winningItem":""}, 
{"password":"CG9RGT","timesToUse":1,"winningItem":""},

Как видите, он красивый и аккуратный, для каждой строки используется 1 пароль. Однако как только файл изменяется, он превращается в следующее:

{"password":"IS360H","timesToUse":0,"winningItem":"counterUAV"},{"password":"AGRD33","timesToUse":0,"winningItem":"sentryGun"},"password":"4BX0FV","timesToUse":0,"winningItem":"chopperGunner"},"password":"99NOTX","timesToUse":1,"winningItem":""},{"password":"X2Z8BO","timesToUse":1,"winningItem":""}, {"password":"R9G4Q0","timesToUse":1,"winningItem":""},"password":"CG9RGT","timesToUse":1,"winningItem":""},

Что мне нужно сделать, чтобы в моем файле JSON сохранялись разрывы строк?

Спасибо!

вы можете вставить коды, которые обновляют ваш файл JSON?

Rakesh Sojitra 14.06.2018 13:59

@RakeshSojitra, извините, только что обновился!

evilgenious448 14.06.2018 14:01

@Lovepreet Singh: верно

Rakesh Sojitra 14.06.2018 14:06

@RakeshSojitra, когда я спросил его в комментариях к его ответу, я также спрошу вас: есть ли способ разбить их только на основе каждого объекта, а не каждого параметра и значения?

evilgenious448 14.06.2018 14:07

да, вы должны сначала создать строку JSON. вы можете добавить новую строку в файл, используя \n

Rakesh Sojitra 14.06.2018 14:14
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
5
42
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

В функции JSON_PRETTY_PRINT доступна опция json_encode, если вы используете ее для кодирования json. Попробуйте следующее:

$json_string = json_encode($data, JSON_PRETTY_PRINT);

Узнать больше о json_encode

Есть ли способ разбить их только на основе каждого объекта, а не каждого параметра и значения?

evilgenious448 14.06.2018 14:05

Другие вопросы по теме