【发布时间】:2018-06-14 11:56:29
【问题描述】:
目前我有 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 文件的代码吗?
-
@RakeshSojitra 抱歉,刚刚更新!
-
@Lovepreet Singh:是的
-
@RakeshSojitra 当我在他的答案的 cmets 中问他时,我也会问你:有没有办法只根据每个对象而不是每个参数和值来分解它们?
-
是的,你必须先制作 JSON 字符串。您可以使用
\n在文件中添加新行
标签: php json line-breaks