C# JSON.net – Serialize C# Object to JSON Issue

asp.net-mvcc++json.netserialization

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!

Best Answer

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))" };
Related Question