簡體   English   中英

如何通過php將數據正確發送到json?

[英]How to correctly send data to json via php?

我正在使用Mailchimp API,並嘗試將用戶名從表單傳遞到列表。

Mailchimp具有用於實際用戶名的嵌套結構,並且我不了解如何為其正確編寫代碼。

JSON數據結構如下所示:

{
"email_address": xxx@xxx.com
"merge_fields": {
"FNAME":
"LNAME":
  }
}

使用post方法的函數發送發布請求腳本

$result = $MailChimp->post("lists/$mailchimp_list_id/members", [
                    'email_address' => $subscriber_email,
                    'status'        => 'subscribed',
                  //'merge_fields'['FNAME'] => $subscriber_name; 
            ]);

我嘗試發送'merge_fields'['FNAME'] => $subscriber_name;

誰能解釋我如何使用PHP進入JSON?

這樣嘗試

$jsonArray  = json_encode(array('0' =>'test','1' => 'test2')); 

json_encode將您的php數組轉換為json格式
如果您想將json數組解碼為php數組,請使用json_decode

$phpArray = json_decode('Any json encoded array');

首先創建一個PHP數據結構以匹配所需的JSON結構,然后創建該結構的json_encode()

{}表示JSON中的對象[]表示JSON中的數組

<?php
    $inner = new stdClass();
    $inner->FNAME = $subscriber_first_name;
    $inner->LNAME = $subscriber_last_name;


    $member = new stdClass();
    $member->email_address = 'xxx@xxx.com';
    $member->merge_fields = $inner;

    $json_string = json_encode($member);

好的,這是在PHP中使用JSON的最佳方法:

  1. 添加它以獲得完整的JSON正文:

      $json = file_get_contents('php://input'); 
  2. 驗證json。 我使用尊重驗證器。 https://github.com/Respect/Validation/blob/master/docs/Json.md

      if(v::json()->validate($json)){ $whatever = new whatever($json); } 
  3. 使用php類類對json對象進行規范化,無論如何{public $ email; 公開的$ merged_fields;

      function __construct($json){ $json = json_decode($json); if($json->email){ $this->email = $json->email }else{ echo "Error"; } } } 
  4. 使用jsonSerializable進行編碼。 這是一個非常好的方法: http : //www.sitepoint.com/use-jsonserializable-interface/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM