0
votes

En passant un grand objet JavaScript contenant des citations, des URL, etc. à l'intérieur JSON à poster appel

Je me rends compte que le sujet de convertir JavaScript vers JSON et que vous avez échappé correctement a été couvert (par exemple ici, Convertir JS Object à JSON String , et ici, Comment puis-je accueillir une chaîne avec des citations simples et doubles à l'intérieur dans JavaScript ). Je n'ai pas beaucoup de succès du tout, mais

J'essaie de passer un gros objet JavaScript à un message postal (en utilisant Postman) qui me demande de le transmettre de la manière suivante: < p> { "Key": "/ URL / URL / ES", "Valeur": "{myData}" }

où mon objet doit remplir la partie de {myData} . Ma structure de données est trop grande pour passer ici entièrement, mais elle contient des pièces comme celle-ci xxx

c'est-à-dire, elle contient des guillemets simples, des URL, des objets à l'intérieur des tableaux, des objets dans des objets, Etc. J'ai essayé d'échapper aux guillemets simples et aux barres obliques dans les URL, en supprimant les pauses de la ligne, etc., mais rien ne semble fonctionner. (Je finis par une sortie qui ressemble à ceci: xxx

J'ai collé dans la console de chrome, puis je json.stringify () Cela, mais cela n'a pas fonctionné non plus. J'ai également pris la sortie de Chrome et l'ai échappée, comme ci-dessus, mais pas de dés. Peut-être que je manque quelque chose de conceptuellement - tout conseil bienvenu! < / p>


6 commentaires

Pourriez-vous publier la partie réelle où mon objet doit remplir la partie de {myData} ou comment vous l'ajoutez à la post-demande? Parce que vous devriez aller juste, retirez simplement les direcelles à "{myData}" et mettez votre JSON là-bas, car Postman n'attend pas "strirte" S3.MAZONAWS.COM/POSTMAN-STATIC-GETPOSTMAN-COM/POSTMAN-DOCS/ ...


Est-ce que json.stringify (jsObject); fonctionne lorsque vous entrez simplement un objet JavaScript valide sans aucune évasion supplémentaire?


@Johnsmith - Quand vous dites "Mettez ton JSON là", voulez-vous dire l'objet en tant que tel, sans la convertir en Json? J'ai essayé {"clé": "/ url / url / es", "valeur": {itinéraire: '/', titre: 'home'}}} (juste un court extrait) et postman est marquer toutes les citations simples. Ou voulez-vous dire que j'ai besoin d'échapper à toutes les citations simples et à avancer des barres obliques? J'ai essayé {"clé": "/ url / url / es", "valeur": {itinéraire: \ '\ / \', titre: \ 'home \'}} et que t Travailler soit ....


@Adder - Non ...


@Céruler Je suppose que vous avez manqué qc. , JSON AKA JavaScript Notation Notation est Vanilla JS Objects. Lorsque vous les stringifiez, c'est juste une chaîne AKA, pas d'un objet JS et vous semblez être coincé entre, il suffit de passer JS-Object à Postman, et non de la chaîne, par exemple, commence par { non "


@johnsmith - merci. Oui, je les ai sérieux - je suivais certaines des suggestions ici pour simplement placer l'objet (voir la première réponse ci-dessous). Si je passe JSON, je dois définir le type à 'Application / Json', non? Quoi qu'il en soit, je les ai sérieux (en utilisant des outils chromé et en ligne), les échapper, etc.


3 Réponses :


2
votes

La valeur doit être une chaîne?

Parce que vous pouvez simplement passer l'objet Trou, vous avez à titre d'objet et utilisez votre type de contenu comme application / JSON P>

{
  "key":"/url/url/es", "value":YOU_OBJECT
}


1 commentaires

Avez-vous essayé de remplacer les guillemets simples extérieurs par des citations doubles?



1
votes

Essayez ceci - https://jsitor.com/4TURZDKIJ , je viens d'écrire un petit utilitaire de serrage pour vous

Remplacez votre objet JSON dans l'objet Myjson et exécutez l'extrait. Il imprimera la chose dont vous avez besoin dans le terminal.

Le truc est, puisque vous devez transmettre la version stricte de votre objet dans le champ Valeur, vous devez utiliser json.stringify (myjson) méthode de javascript. Mais puisque vous utilisez directement Postman, vous devrez peut-être utiliser un outil pour convertir cela. Le lien ci-dessus vous aidera à le faire.


2 commentaires

Merci beaucoup - cependant, Postman marque le premier devis unique (dans {Key: 'Certaines données', ) avec "mauvaise chaîne" ....


OK, c'est que c'est parce que son JSON non valide, un JSON valide ne doit pas contenir de citations et même des clés doit également être emballée dans des guillemets. Permettez-moi de changer l'extrait.



1
votes

À la fin, utilisez simplement json.stringify () en chrome, j'ai pu le faire fonctionner. Je n'ai aucune idée de ce que la question était l'autre fois que j'ai essayé cela - je faisais attention. Merci à tous ceux qui m'ont donné leur temps!


0 commentaires