В настоящее время у меня есть 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 сохранялись разрывы строк?
Спасибо!
@RakeshSojitra, извините, только что обновился!
@Lovepreet Singh: верно
@RakeshSojitra, когда я спросил его в комментариях к его ответу, я также спрошу вас: есть ли способ разбить их только на основе каждого объекта, а не каждого параметра и значения?
да, вы должны сначала создать строку JSON. вы можете добавить новую строку в файл, используя \n






В функции JSON_PRETTY_PRINT доступна опция json_encode, если вы используете ее для кодирования json. Попробуйте следующее:
$json_string = json_encode($data, JSON_PRETTY_PRINT);
Узнать больше о json_encode
Есть ли способ разбить их только на основе каждого объекта, а не каждого параметра и значения?
вы можете вставить коды, которые обновляют ваш файл JSON?