I have a json string containing encoded HTML as below which I get after doing a Shopify Liquid escape. I am trying to decode the internal HTML and deserialize this string into a JObject.
{
"testId": 494254,
"languageIdentifier": "en_us",
"overview":"<p style="margin: 0px;"><span>Overview'ff' Test</span></p>",
"responsibilities":"<p style="margin: 0px;"><span>Responsibilities</span></p>",
"qualifications":"<p style="margin: 0px;"><span>Qualifications</span></p>",
"guidance":"z_used_Guidance Test",
"additionalDetailsForInternalCandidates":"<p style="margin: 0px;"><span>Additional Details</span></p>",
"requisitionNotes":"Requisition Notes"
}
The actual html is:
{
"testId": 494254,
"languageIdentifier": "en_us",
"overview": "<p style="margin: 0px;"><span>Overview'ff' Test</span></p>"
"responsibilities": "<p style="margin: 0px;"><span>Responsibilities</span></p>"
"qualifications": "<p style="margin: 0px;"><span>Qualifications</span></p>"
"additionalDetailsForInternalCandidates":"<p style="margin: 0px;"><span>Additional Details</span></p>",
"guidance":"z_used_Guidance Test",
"requisitionNotes":"Requisition Notes"
}
However, when I try to decode and deserialize, it is failing. My code is:
string test = "{rnt"testId": 494254,rnt"languageIdentifier": "en_us",rnt"overview":"<p style="margin: 0px;"><span>Overview'ff' Test</span></p>",trnt"responsibilities":"<p style="margin: 0px;"><span>Responsibilities</span></p>",rnt"qualifications":"<p style="margin: 0px;"><span>Qualifications</span></p>",rnt"guidance":"z_used_Guidance Test",rnt"additionalDetailsForInternalCandidates":"<p style="margin: 0px;"><span>Additional Details</span></p>",rnt"requisitionNotes":"Requisition Notes"}";
var jsonString = HttpUtility.HtmlDecode(test);
var objectjson = JsonConvert.DeserializeObject<JObject>(jsonString);
However, I get this error:
'After parsing a value an unexpected character was encountered: m. Path 'overview', line 4, position 23.'
Can anyone help me in decoding an encoded HTML and deserialize it into JObject?
I want it as a decoded html string like the original input
{
"testId": 494254,
"languageIdentifier": "en_us",
"overview": "<p style="margin: 0px;"><span>Overview'ff' Test</span></p>",
"responsibilities": "<p style="margin: 0px;"><span>Responsibilities</span></p>",
"qualifications": "<p style="margin: 0px;"><span>Qualifications</span></p>",
"additionalDetailsForInternalCandidates":"<p style="margin: 0px;"><span>Additional Details</span></p>",
"guidance":"z_used_Guidance Test",
"requisitionNotes":"Requisition Notes"
}
Thanks in advance.
2
Answers
You have to do as per below code in C#
libraries
code
If you want to do it from html instead of c# then do as per below.
You assume that you have an HTML-encoded JSON file. That is not the case. What you have is a JSON file containing HTML-encoded values. That’s something different.
It means that you first need to parse the JSON and then HTML-decode the value.