Каким будет эквивалент JS этого объекта JSON из PHP?

#php #node.js #arrays #json

#php #node.js #массивы #json

Вопрос:

Я пытаюсь отправить эти данные в конечную точку API, я не могу определить формулу, по которой она должна быть фактически передана, мне нужно, чтобы она работала с NodeJS (axios) для публикации

 $product = ShoppyModelsProduct::create([
    'title'         => 'My test product',
    'price'         => 10,
    'unlisted'      => false,
    'type'          => 'service',
    'currency'      => 'EUR',
    'stock_warning' => 0,
    'quantity'      => [
        'min' => 1,
        'max' => 10
    ],
    'email'         => [
        'enabled' => false
    ]
]);
  

ОТРЕДАКТИРОВАНО:
С предложением @Nick (в комментариях):

        let opts = {
            method: "PUT",
            headers: this.headers,
            data: JSON.stringify({
                "title": "My test product",
                "price": 10,
                "unlisted": false,
                "type": "service",
                "currency": "EUR",
                "stock_warning": 0,
                "quantity": {
                    "min": 1,
                    "max": 10
                },
                "email": {
                    "enabled": false
                }
            }),
            url: `${this.base_url}/v1/products/`
        };

        let res = await axios(opts).catch(function(error) {
            if (error.response) {
                console.log(error.response.data);
                console.log(error.response.status);
                console.log(error.response.headers);
            }
        });
        return res.data;
  

ВОЗВРАТ

 {
  message: 'The given data was invalid.',
  errors: {
    title: [ 'The title field is required.' ],
    price: [ 'The price field is required.' ],
    type: [ 'The type field is required.' ],
    'email.enabled': [ 'The email.enabled field is required.' ],
    currency: [ 'The currency field is required.' ]
  }
}
  

Комментарии:

1. json_encode($product) ?

2. @Nick это нужно для NodeJS

Ответ №1:

Вам не нужно оборачивать объект данных с помощью JSON.stringify.

 const opts = {
  method: 'PUT',
  headers: this.headers,
  data: {
    title: 'My test product',
    price: 10,
    unlisted: false,
    type: 'service',
    currency: 'EUR',
    stock_warning: 0,
    quantity: {
      'min': 1,
      'max': 10,
    },
    email: {
      'enabled': false,
    },
  },
  url: `${this.base_url}/v1/products/`,
};
  

Комментарии:

1. Спасибо, я этого не понял :’)