How do I parse JSON string with one of the values containing special characters?
JObject obj = JObject.Parse(str);
str value:
{
"message": "some !@#$%^&*(){}:"?/?/|"':>;><{"d":"v"}"
}
I have got execption: After parsing a value an unexpected character was encountered: {.
Take your JSON and .stringify()
it.
{
"message": JSON.stringify("your text here")
}
If you have raw data in your ASP.NET MVC view, you can follow this way:
{
"message": JSON.stringify("@Html.Raw(HttpUtility.JavaScriptStringEncode(Model.MyString))")
}
You can also try more preferred way:
JSON.stringify({ "message" : message });
That JSON is invalid. If a JSON string contains special characters like double quotes "
, backslashes \
or slashes /
, they need to be escaped with backslashes \
. (See JSON.org.) No JSON parser, including Json.Net, will be able to deal with a JSON string that isn't properly formatted in the first place.
Your JSON would need to look like this to be able to be parsed correctly:
{
"message": "some !@#$%^&*(){}:\"?/?/|\"':>;><{\"d\":\"v\"}"
}
The solution is to correctly serialize the string at the source.