J'utilise React et fetch, et j'essaye d'envoyer une chaîne JSON au service web d'un client, ils attendent un objet comme celui-ci:Créer un objet JSON Sans les guillemets au début et à la fin de la chaîne
{
"id":"1",
"plan_id":"6",
"plan_start_date":"2017-08-02",
"months":"1",
"extra_hours":"4",
"attendees":"1",
"mails":"",
"shopping_cart_id":"0"
}
Cependant, chaque fois que je l'utilise JSON.stringify() pour générer la chaîne JSON, le résultat est quelque chose comme ceci:
"{
"id":"1",
"plan_id":"6",
"plan_start_date":"2017-08-02",
"months":"1",
"extra_hours":"4",
"attendees":"1",
"mails":"",
"shopping_cart_id":"0"
}"
Ainsi, lorsque la demande est envoyée, je reviens une erreur indiquant que l'objet n'est pas valide.
Existe-t-il un moyen d'envoyer l'objet comme sur le premier exemple? J'ai essayé de construire manuellement l'objet, mais je ne peux pas obtenir les noms de la clé pour rester entre guillemets.
EDIT: Le code pour l'appel est ici:
addToCart(plan) { //Plan is the object with the previous example's structure
fetch("http:ClientWS", {
method: "POST",
body: JSON.stringify(plan) //Produces the "{}" issue
})
.then(response => response.json())
.then(json => {
//Read the response info, here it tells me that the value for 'id' is invalid
console.log(json.datos);
}).catch(function(ex) {
console.log(ex);
});
}
Vous pourriez vouloir montrer du code. Stringifier fonctionne très bien. – john
Vous devrez le construire manuellement – fungusanthrax
'JSON.stringify (" abc ")' produira '" abc "' (entre guillemets dans le cadre de la chaîne générée). Peut-être qu'avec des réactions, vous pouvez simplement passer un objet comme le corps, sans d'abord le sérialiser vous-même? – john