2012-02-17 15 views
22

Sto provando a serializzare un oggetto C# su JSON utilizzando la libreria JSON.net. Il problema che sto avendo è la stringa in fase di creazione ha & quot in esso.JSON.net Serialize C# object to JSON Edizione

Di seguito si riporta la stringa restituita tramite JsonConvert.SerializeObject:

{ 
    "ComId": "AAAiB+AAHAALOaFAAL", 
    "CovId": "AAABC9AAPAAAZYUAAI", 
    "EffectiveDate": "\\/Date(1329368400000-0500)\\/", 
    "ExpirationDate": "\\/Date(1360990800000-0500)\\/", 
    "State": "TX", 
    "DeductibleAmount": 500.0, 
    "DeductibleType": "PD" 
} 

esecuzione la stringa attraverso JSONLint rendimenti:

Parse error on line 1: 
{ "ComId": & 
-----^ 
Expecting 'STRING', '}' 

Di seguito è l'oggetto che sto cercando di serializzare in 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; } 
} 

Sto facendo qualcosa di sbagliato? Ho cercato e sembra che altri che usano il metodo ottengano stringhe più pulite! Grazie per il vostro tempo in anticipo!

+0

Perché non fare una sostituzione di quella " da "e quindi analizzarlo – jcvegan

+1

Come si utilizza JSON Stai ritornando da un'azione di controllo Hai provato' ritorno JSON (modello);?? ' ? – jrummell

+0

Questo è '{" ComId ": null," CovId ": null," EffectiveDate ":" \/Date (-62135596800000 + 0200) \/"," ExpirationDate ":" \/Date (-62135596800000 + 0200) \/"," State ": null," DeductibleAmount ": 0.0," DeductibleType ": null}' cosa ottengo quando eseguo ** 'JsonConvert.SerializeObject (new CommonInfoModel())' **. Devi fare qualcosa con la stringa dopo la serializzazione –

risposta

74

La stringa JSON è in codice HTML. Poiché stai visualizzando il json nella tua vista, puoi usare l'helper @Html.Raw() per impedire che venga codificato.

var data = { json : "@Html.Raw(JsonConvert.SerializeObject(Model))" }; 
+0

Grazie, usando Html.Raw, sono riuscito a pulire la stringa! – MetRay

+0

Buona risposta., grazie. –