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))" };
Share:
36,260
MetRay
Author by

MetRay

Senior developer at Atlantic Casualty Insurance Company.

Updated on February 18, 2020

Comments

  • MetRay
    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 &quot'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
    MetRay about 12 years
    Thank you, by using Html.Raw I was able to clean up the string!
  • ihavenokia
    ihavenokia about 6 years
    this rocks! Thank you!
  • taiji123
    taiji123 over 2 years
    Gotta 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
    Pierre over 2 years
    This worked for me: var model = @Html.Raw(JsonConvert.SerializeObject(Model));