McTheels

McTheels

Replacing escape characters

Hi,
I want to String.replace(string, "\", "") a string that looks like this "{\"year\":\"2020\",\"p\":\"1002\"}" but it doesnt work.
How can I remove the \ character from this string.

Most Liked

NobbZ

NobbZ

There is no backslash in the string.

The \" combination is used to “escape” the doublequote to be able to use it in the string.

If you were writing "{"year":"2020"}" it where a syntax error, as there is no operator between "{" and the variable year, etc.

If you were printing the string "{\"year\":\"2020\",\"p\":\"1002\"}" you’d see {"year":"2020","p":"1002"}.

dimitarvp

dimitarvp

It is not actually in your string anywhere. The backslash is used to escape double quotes (") in the code. Try this for yourself:

IO.puts("\"")

It prints a double quote ("). The backslash tells the compiler: what follows is the special character ".

This is invalid code. The valid code is:

String.replace(string, "\\", "")

But that is not needed in your case. Try this:

"{\"year\":\"2020\",\"p\":\"1002\"}" == ~s({"year":"2020","p":"1002"})

The backslashes you might see in the console are just instructions that what follows is an otherwise special character. If this confuses you then you should read up on special characters and escaping.

This image applies to Python and not Elixir but it has a lot in common with it. Hopefully it unlocks your understanding.

NobbZ

NobbZ

Again, when you see "\"" in the REPL/iex then the string contains only a single double quote. Of course when you copy the inspected value and paste it as is into some other program that interpretes input as is, then it will go wrong, as both programs work with different levels of abstractions.

Thats why I’m asking how exactly you are testing that the receiver sees the actual backslash.

An HTTPoison.post!("http://example.com", "{\"year\":\"2020\",\"p\":\"1002\"}") will issue an HTTP post request with the following body:

{"year":"2020","p":"1002"}

You can verify using wireshark or tcpdump or any other network sniffer if you want (and are not using HTTPS).

Also I assume, that when the other side returns a 400, then it usually tells you in the body or the headers what you did wrong.

Therefore again, please show us the code how you send the request via HTTPoison and how you do via postman. Please include what headers you send from the postman side.

Where Next?

Popular in Questions Top

jaysoifer
Is there a way to rollback a specific migration and only that one (“skipping” all the other ones)? Would mix ecto.rollback -v 200809061...
New
lanycrost
Hi everyone! I need implement if…else if…else condition from my elixir code, and anymore of this control flow structures not work proper...
New
sergio
In Ruby, I can go: User.find_by(email: "foobar@email.com").update(email: "hello@email.com") How can I do something similar in Elixir? ...
New
JulienCorb
I am trying to implement my new.html.eex file to create new posts on my website. new.html.eex: <h1>Create Post</h1> <%= ...
New
nsuchy
Hi. I’ve noticed that Windows Powershell has it’s own IEX command and you cannot access Elixir’s IEX due to the conflict. This isn’t a cr...
New
fireproofsocks
I’m working on defining a simple Ecto schema for a table (in PostGres), but I don’t see where I can define a column as NOT NULL. Conside...
New
greenz1
I have a phoenix application from which a user can download multiple(5-6) files of size 1MB. I couldn’t find anything related to sending ...
New
script
If I have a string “1000 cfu/ml” . I want to remove the characters and / and space . So the string is like this "1000" What is the ...
New
shahryarjb
Hello, I have map which I want to convert it to string like this: the map: %{last_name: "tavakkoli", name: "shahryar"} the string I ne...
New
WestKeys
Currently suffering from paralysis by [HTTP client] analysis. This is rather unusual in Elixirland as there tends to be consensus on the ...
New

Other popular topics Top

electic
Hi, I am new to Elixir. I am trying to use the DateTime component to insert a date into MySQL however the there seems to be no way to fo...
New
RisingFromAshes
I’ve read in another post that it may be possible with a router helper - but I couldn’t find an appropriate one, and tbh, I’m still just ...
New
josevalim
Hi everyone, One of the features added to Elixir early on to help integration with Erlang code was the idea of overridable function defi...
New
dokuzbir
I want to highlight html closing tags when i click a html tag. That works in .html files but doesnt work for html.eex templates. How can...
New
sorentwo
Hello! tl;dr Announcing Oban, an Ecto based job processing library with a focus on reliability and historical observability. After spen...
985 43487 311
New
jerry
Good day to you all. I have been struggling to get a query involving like and ilike to work. Can anyone assist me on this, please? pro...
New
pmjoe
I have a relationship of love and hate with Elixir. Lots of things are just absolutely right, but there are some things that are kind of ...
New
SoCreat
i’m a new one to elixir which editor can i use vs code? or atom? Thanks! :smiley:
New
WestKeys
Currently suffering from paralysis by [HTTP client] analysis. This is rather unusual in Elixirland as there tends to be consensus on the ...
New
jason.o
In the code below, if the create action is not set to accept “extra_key” as an input, it errors out with a message shown above. Is there ...
New

Latest on Elixir Forum

We're in Beta

About us Mission Statement