繁体   English   中英

构建一个JSON编码的对象

[英]Building a JSON encoded object

我正在向API提交数据。 它想要这样的格式:

{
  "subscribers": [{
    "email": "john@acme.com",
    "time_zone": "America/Los_Angeles",
    "custom_fields": {
      "name": "John Doe"
    }
  }]
}

我正在像这样在PHP中构建JSON对象:

$subscriberInfo = [
    'subscribers' => [
        ['email' => $email],
        ['custom_fields'] => [
            ['name' => "Bob"]
        ]
    ]   
];
$encoded = json_encode($subscriberInfo);

API拒绝['custom_fields']

我究竟做错了什么?

正确的数组格式。 您使用了错误的数组格式。

在这里尝试这个片段

$subscriberInfo = array(
    'subscribers' => array(
        array(
          'email' => "s",
          'custom_fields'=>
             array('name' => "Bob")
        )
    )
);

API也应拒绝“电子邮件”字段。

它应该是;

$subscriberInfo = [
    'subscribers' => [
        [
            'email' => $email,
            'custom_fields' => [
                'name' => "Bob"
            ]
        ]
    ]   
];

$encoded = json_encode($subscriberInfo);

您的偏移量完全不正确。 在“ custom_field”之后,对象的第4行上不应包含“ [”:

$subscriberInfo = [
    'subscribers' => [
        ['email' => $email],
        ['custom_fields' =>
            ['name' => "Bob"]
        ]
    ]   
];
$encoded = json_encode($subscriberInfo);

...返回:

"subscribers":[{"email":""},{"custom_fields":{"name":"Bob"}}]}

试试这个,检查现场演示

$subscriberInfo = [
    'subscribers' => [[
        'email' => $email,
        'custom_fields' => 
            ['name' => "Bob"]
        ]
    ]   
];

试试这个例子:

<?php
$subscriberEx = array(
    'subscribers' => array(
        array('email' => "s",
        'custom_fields'=>
            array('name' => "Bob")
        )
    )
);
$subscriber_encoded = json_encode($subscriberEx);
echo $subscriber_encoded;
?>

输出:

{  
   "subscribers":[  
      {  
         "email":"s",
         "custom_fields":{  
            "name":"Bob"
         }
      }
   ]
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM