Vinícius
Vinícius

Reputation: 483

How access array inside of JSON?

I'm use Guzzle for Laravel to send POST for Webservice, but I can't access array to send picture. That is the structed to I need follow:

{
"title": "xxxxxxxxxxxxxxxxx",
"category_id": "XXXX",
"official_store_id": null,
"pictures": [
  {
"id": "XXXXX",
"url": "http://mlb-s1-p.mlstatic.com/292325-MLB25432321923_032017-O.jpg",
"secure_url": "https://mlb-s1-p.mlstatic.com/292325-MLB25432321923_032017-O.jpg",
"size": "500x500",
"max_size": "500x500",
"quality": ""
}
],
}

I try to send it like this:

 $r = $client->request('POST', 'https://api.mercadolibre.com/items?access_token='.$token->erp_access_token, [
                'json' => [
                    'title' => $name,
                    'category_id' => $cat2,
                    'price' => $price,
                    'currency_id' => 'BRL',
                    'available_quantity' => $quantity,
                    'buying_mode' => 'buy_it_now',
                    'listing_type_id' => 'gold_special',
                    'condition' => 'new',
                    'description' => $description,
                    'pictures' => [
                        'url' => $image
                    ]
                ]
            ]);

Returns the error:

{"message":"body.invalid_field_types","error":"[invalid property type: [pictures] expected List but was JSONObject value (truncated...)

I read the Guzzle docs, but I not found any example for that case.

Any suggestion?

Upvotes: 0

Views: 194

Answers (1)

Sandeesh
Sandeesh

Reputation: 11906

Change your pictures value from this

'pictures' => [
    'url' => $image
]

to this

'pictures' => [
    ['url' => $image]
]

Upvotes: 1

Related Questions