PHP插入没有主键的json对象

时间:2018-04-25 19:20:08

标签: php json

我在这一点上很挣扎。 我使用脚本插入/更新网站语言。

JSON文件的主要结构如下所示

{
  "English": {
      "shortcode": "EN"
  }
}

以下是我用于将语言插入JSON文件的代码示例

$data['french'] = $_POST;
array_push($json, $data);
$jsonData = json_encode($json, JSON_PRETTY_PRINT);
file_put_contents(__DIR__.'/../files/lg.json', $jsonData);

但是当我在我的JSON文件中插入一条新记录时,新密钥将附加到我的JSON文件中,它看起来像这样,

{
  "English": {
      "shortcode": "EN"
  },

  "0": {
    "French": {
        "shortcode": "FR"
    }
  }
}

所以我的问题是如何插入新记录但不插入密钥" 0"," 1" ..

提前致谢。

2 个答案:

答案 0 :(得分:0)

似乎$ _POST是一个数组。 所以你将数组推到$ json数组

试试这个:

$json = $json + $_POST;
$jsonData = json_encode($json, JSON_PRETTY_PRINT);
file_put_contents(__DIR__.'/../files/lg.json', $jsonData);

答案 1 :(得分:0)

你只需要制作$ json [key] = value

$json['French'] = $_POST;

如果它不存在则添加,否则更新