Comment échapper les guillemets simples dans des guillemets doubles dans des guillemets simples
Voici un exemple de ligne de commande qui correspondent à cette description :
curl http://dumbdomain.com/solr/collection2/update/json -H 'Content-type:application/json' -d ' { "add": { "doc": { "uid": "79729", "text" : "I''ve got your number"} } }'
J'ai déjà essayé \' (pas échappé), codées dans l'url (pas urldecoded à cette autre fin!) et " (citation disparaître!), sans succès.
- Utiliser les
http
, et de ne pas utiliser le titre de la question à l'étiqueter.
Vous devez vous connecter pour publier un commentaire.
Si vous remplacez "par unicode" (qui est \u0027), alors cela fonctionne:
Étrange, mais vaut la peine de le savoir!
Une habitude solution dans ce cas est de mettre les données dans un fichier et de le poster.
Et ensuite invoquer:
Ce serait élimine le besoin d'échapper les guillemets dans le json.
Dans le cas où vous êtes à l'aide de Windows (en général ce problème ne se produit pas sur *nix), vous pouvez rediriger la sortie de l'echo de curl pour éviter de l'échapper au total:
Voulez-vous dire comment obtenir le JSON transmis via la ligne de commande correctement? Si vous utilisez Windows, alors vous devez être prudent sur la manière de vous échapper de votre chaîne. Cela fonctionne si vous utilisez des guillemets autour de l'ensemble de la chaîne de données, et ensuite s'échapper les guillemets doubles pour le JSON. Par exemple: