使用PHP将JSON数据追加到服务器上的JSON文件中

三3

我在服务器上存储了一个JSON文件,需要向其中添加数据。我已成功将文件检索到内存中并成功解析了文件。我很难将新的JSON数据放置在正确的位置。

这是我的JSON文件的格式:

{
  "emails": [

              {
                "group": "1st Group",
                "list": [
                          {
                            "id": 1,
                            "subject": "Testing 1"
                          },
                          {
                            "id": 2,
                            "subject": "Testing 2"
                          }
                        ] // End list array
              }, // End 1st Group 

              {
                "group": "2nd Group",
                "list": [
                          {
                            "id": 3,
                            "subject": "Testing 3"
                          },
                          {
                            "id": 4,
                            "subject": "Testing 4"
                          }
                        ] // End list array
              } // End 2nd Group

              /* NEED TO INSERT NEW DATA HERE */

             ] // End emails array
}

我试图group list在最后一个之后追加一个新group list在此示例中,该代码将在此行之后:} // End 2nd Group

这是我的PHP代码,该代码从我的服务器获取JSON文件并进行解析:

$getJSON = file_get_contents('emails.json');
$tempArray = json_decode($getJSON, true);

$numberOfGroups = count($tempArray['emails'][0]);

这是我的php代码,用于创建JSON文件的格式/布局:

$groupArray = array();

$json = array( 'emails' => array() );

foreach ($contextIORequest->getData() as $message) {

  $newTZ = new DateTimeZone("America/Chicago");
  $currentTime = new DateTime();
  $currentTime = DateTime::createFromFormat('U', $message['date_received']);
  $currentTime->setTimezone($newTZ);
  $formattedDateReceived = $currentTime->format('F j, Y');

  if (!in_array($formattedDateReceived, $groupArray)) {
      array_push( $json['emails'],
          array(
               'group' => $formattedDateReceived,
               'list' => array()
          )
      );
      $groupArray[] = $formattedDateReceived;
  }

  $body = str_replace(array("\r\n","\n"),"", $message['body'][0]['content']);
  $newBody = preg_replace('!\s+!', ' ', $body);

  array_push($json['emails'][array_search($formattedDateReceived,$groupArray)]['list'],
      array(
        'id' => $message['message_id'],
        'subject'=> addslashes($message['subject']),
        'to' => array("Me"),
        'body' => $newBody,
        'time' => $formattedDateReceived,
        'datetime' => $formattedDateReceived,
        'from' => $message['addresses']['from']['name'],
        'dp' => "assets/img/profiles/avatar.jpg",
        'dpRetina' => "assets/img/profiles/avatar2x.jpg"
      )
  );

} // end foreach loop

// Output the JSON
header('Content-Type: application/json');
echo json_encode($json);

那么我将如何group list在最后一个之后追加一个新group list呢?这需要在没有实际包含emails用于创建JSON数组的情况下完成

贾奥德

json_decode处理序列化数据(true像完成操作一样传递第二个参数)之后,在PHP中将有一个关联数组,该数组在名为的键处具有一个元素emails该元素是一个数组,其中包含要向其添加另一个的组列表。所以这是一个问题:

$data = json_decode($getJSON, true);
$data['emails'][] = $TheNewGroupList;

不要让它以JSON格式的序列化数据开头的事实让您感到困惑。一旦运行,json_decode它就只是一个PHP数据结构(对象或数组),对其进行的操作就像其他任何PHP数据一样。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

从本地存储将json数组追加到服务器上的json文件

通过Javascript将数据添加到服务器上的现有JSON文件

使用 PowerShell 将数据附加到 FTP 服务器上的 CSV 文件

将<textarea>数据获取到服务器上的JSON文件?

如何将db.json文件中的数据解析到服务器中?

Node.js如何在服务器上的json文件中删除\编辑数据

定期使用python将Json数据从文件发送到服务器

如何使用retrofit2将json数据发布到android中的服务器?

无法在React中使用useEffect钩子将json服务器数据连接到数组中

使用JSON在服务器中插入数据

将数据追加到.json文件

如何将JSON数据从节点js脚本发送到其他服务器上的HTML文件

使用Python将嵌套的JSON数据追加到列中

使用PHP表单将数据附加到JSON文件的顶部

使用PHP和AJAX将数据附加到json文件

使用DataContractJsonSerializer将元素追加到文件中的JSON数组

如何使用ssh从一台服务器上的文件复制文本并追加到另一台服务器上的文件?

使用JQuery Mobile使用PHP,POST和JSON将数据发送到服务器时出现问题

使用Ruby将数据附加到JSON文件中

将json文件从服务器主体转换为node中的json对象

使用PHP将数据从mysql转换为JSON可以在本地工作,但不能在服务器上工作

如何使用sqoop将mySql服务器中的JSON字段数据导入到Hive表中

将json数据追加到已经存在的json数据中

curl问题:如何使用Windows cmd中的curl将json格式的数据发布到服务器?

无法使用流集将JSON响应转储到CSV文件中的FTP服务器

使用Retrofit将文件上载到JSON的文件上传到服务器

如何在服务器上显示实时JSON数据

在Go WebSocket服务器上获取JSON数据

JSON文件未显示在Godaddy服务器上