Le caractère \ est utilisé pour échapper certains caractères d'une chaîne. J'ai besoin d'une chaîne qui inclut \ comme ceci:

str = "Lucas Andrade \"My name\""

Lorsque j'imprime str, je devrais voir ceci:

print str
# >> Lucas Andrade \"My name\"

J'intégrerai cette chaîne directement dans un paramètre json pour envoyer une requête API en utilisant HTTParty comme cet exemple:

params {
  "name": "Lucas",
  "json": {
    "address": "some",
    "street": "example",
    "string": "the custom \"string\""
  }
}

Je pense que HTTParty ne formate pas cette chaîne automatiquement.

2
Lucas Andrade 20 nov. 2018 à 23:02

3 réponses

Meilleure réponse

Je ne parle pas très bien Ruby, mais cela se fait généralement avec "\\", ce qui donne "\"

Donc, "Lucas Andrade \\\"My name\\\"" devrait aboutir à ce que vous recherchez, un \ échappé et un " échappé

3
Stefan 21 nov. 2018 à 08:17

Vous pouvez l'encapsuler dans des guillemets simples.

str = 'Lucas Andrade "My name"'
=> "Lucas Andrade \"My name\""
1
okay56k 20 nov. 2018 à 20:10

Lorsque vous devez envoyer la chaîne au format JSON à une API, pourquoi n'utilisez-vous pas JSON.generate pour échapper la chaîne si nécessaire?

JSON.generate("Lucas Andrade \"My name\"")
3
spickermann 20 nov. 2018 à 20:23