JSON.net Serialize C# object to JSON Issue
36,260
Your json string is being HTML encoded. Since you're rendering the json in your view, you can use the @Html.Raw()
helper to prevent it from being encoded.
var data = { json : "@Html.Raw(JsonConvert.SerializeObject(Model))" };
Author by
MetRay
Senior developer at Atlantic Casualty Insurance Company.
Updated on February 18, 2020Comments
-
MetRay about 4 years
I am trying to serialize a C# object to JSON using JSON.net library. The issue I am having is the string being created has "'s in it.
Below is the string returned via JsonConvert.SerializeObject:
{ "ComId": "AAAiB+AAHAALOaFAAL", "CovId": "AAABC9AAPAAAZYUAAI", "EffectiveDate": "\\/Date(1329368400000-0500)\\/", "ExpirationDate": "\\/Date(1360990800000-0500)\\/", "State": "TX", "DeductibleAmount": 500.0, "DeductibleType": "PD" }
Running the string through JSONLint returns:
Parse error on line 1: { "ComId": & -----^ Expecting 'STRING', '}'
Below is the object I am trying to serialize into JSON:
public class CommonInfoModel { public virtual string ComId { get; set; } public virtual string CovId { get; set; } [Display(Name = "Effective Date")] public virtual DateTime EffectiveDate { get; set; } [Display(Name = "Expiration Date")] public virtual DateTime ExpirationDate { get; set; } [Display(Name = "State")] public virtual string State { get; set; } [Display(Name = "Deductible Amount")] public virtual decimal DeductibleAmount { get; set; } [Display(Name = "Deductible Type")] public virtual string DeductibleType { get; set; } }
Am I doing something wrong? I have searched and it seems others who use the method get cleaner strings! Thank you for your time in advance!
-
MetRay about 12 yearsThank you, by using Html.Raw I was able to clean up the string!
-
ihavenokia about 6 yearsthis rocks! Thank you!
-
taiji123 over 2 yearsGotta be careful with this, @Html.Raw bypasses Razor's validation which opens up your page to an XSS vulnerability (if your model has string values with <script>, etc.)
-
Pierre over 2 yearsThis worked for me:
var model = @Html.Raw(JsonConvert.SerializeObject(Model));