如何通过php正确地将数据发送到json?

时间:2016-04-14 09:50:48

标签: php json

我正在使用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?

3 个答案:

答案 0 :(得分:0)

试试这个

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

json_encode会将您的php数组转换为json格式
如果要将json数组解码为php数组,请使用json_decode

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

答案 1 :(得分:0)

首先创建一个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);

答案 2 :(得分:0)

好的,这是在PHP中使用JSON的最佳方式:

  1. 添加此内容以获取完整的JSON正文:

     $json = file_get_contents('php://input');
    
  2. 验证json。我使用Respect Validator。 https://github.com/Respect/Validation/blob/master/docs/Json.md

            if(v::json()->validate($json)){
    
               $whatever = new whatever($json);
            }
    
  3. 使用php类规范化json对象     什么{         public $ email;         public $ merged_fields;

        function __construct($json){
            $json = json_decode($json);
    
            if($json->email){
                $this->email = $json->email     
            }else{
                echo "Error";       
            }
        }
    }
    
  4. 使用jsonSerializable进行编码。这是一个非常好的HowTo: http://www.sitepoint.com/use-jsonserializable-interface/