json_encode обрабатывает массив одного элемента как объект - PullRequest
0 голосов
/ 23 октября 2019

это json, который я должен произвести

{
  "email": "example@example.com",
  "campaign": {
    "campaignId": "p86zQ"
  },
  "customFieldValues": [
    {
      "customFieldId": "y8jnp",
      "value": ["18-29"]
    }
  ]
}

, если я использую

$data = [
        "email" => $_POST['mail'],
        "campaign" => [
            "campaignId" => "4JIXJ"
        ],
        "customFieldValues" => [
            "customFieldId" => "y8jnp",
            "value" => ["18-29"]
        ]
    ];

, и я делаю json_encode ($ data)

значение является объектом, но это должен быть массив с одним элементом. Каким-то образом json_encode обрабатывает его как объект. Могу ли я заставить его рассматривать его как массив с одним элементом?

Заранее спасибо

Адриан

1 Ответ

3 голосов
/ 23 октября 2019

На данный момент у вас есть один массив с 2 элементами вместо массива с одним элементом подмассива. Чтобы получить json в первом разделе, вам нужно добавить еще один уровень массива.

$data = [
        "email" => $_POST['mail'],
        "campaign" => [
            "campaignId" => "4JIXJ"
        ],
        "customFieldValues" => [
            [
                "customFieldId" => "y8jnp",
                "value" => ["18-29"]
            ]
        ]
    ];

Это даст вам следующее:

{
    "email": null,
    "campaign": {
        "campaignId": "4JIXJ"
    },
    "customFieldValues": [
       {
          "customFieldId": "y8jnp",
          "value": ["18-29"]
       }
    ]
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...