I have the ungrateful task to build a JSON String in Java, manually, without any framework, just a StringBuilder. I know this is bad, but it is only part of a prototype, I will do this better next time.
My question: How can I put the String -> "Some text WITH quotes" <- into a JSON object?
Of course, {"key" : " "Some text WITH quotes" "} is no valid json because of the unescaped quotes.
I think I have to use String.replace here, but by what can I replace the quotes? Same question for the slash "/". What is the proper replacement?
Thank you
"\"Some text WITH quotes\", slashes: /foo and backslashes \\foo"
translates to:
"Some text WITH quotes", slashes: /foo and backslashes \foo
You can use StringEscapeUtils.escapeJavaScript() in apache-commons Lang 2.6 or StringEscapeUtils.escapeEcmaScript() in 3.4 to do the hard-work of escaping for you.
If you want to include a literal double quote in a JSON string, you must escape it by preceding it with a backslash \. So your JSON string would have to look like this:
{"key" : " \"Some text WITH quotes\" "}
See json.org for the official JSON syntax.
The forward slash / is not a special character and does not need to be escaped. The backslash \ needs to be escaped with itself: \\.
Beware that in Java source code the \ is also the escape character and " also needs to be escaped, which means that if you use these as a literals in your source code you must escape them again.
StringBuilder sb = new StringBuilder();
sb.append("{\"key\" : \" \\\"Some text WITH quotes\\\" \"");
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With