JSON字符串表示为0

时间:2016-03-06 17:05:14

标签: php json

if (isset($_SESSION['user'])) {

   $plik = 'users/'.$_SESSION['user'].'/settings.json';

   $file = fopen($plik, "a+");
   @fclose($plik);

   $jsonString = file_get_contents($plik);
   $data = json_decode($jsonString, true);
   if ((isset ($_POST['s_pm'])) && $_POST['s_pm']=="on")
       $data["set_friendreq"] = 1; else $data["set_friendreq"] = 0;
   if (isset($_POST['dsp']))
       $data["set_displayname"] = $_POST['dsp'];

   $newJsonString = json_encode($data);
   file_put_contents($plik, $newJsonString);
}

所有内容都被保存到JSON文件中没有任何问题(例如set_friendreq,因为它是一个数字),但是当我尝试发送字符串时," 0"出现在我的JSON文件(set_displayname)中。为什么呢?

JSON文件:

{"set_friendreq":0,"set_displayname":"0","lang":"2"}

1 个答案:

答案 0 :(得分:0)

对于set_friendreq它是0因为type是Integer,你在字符串代码中初始化它们。

 $data["set_friendreq"] = 1; else $data["set_friendreq"] = 0;

$ _ POST - 它的数组字符串,在你尝试使用json_decode时,请参阅" 0"。 Becasue 0它的字符串不是整数。你对变量类型有问题。