2012-02-17 16 views
22

Próbuję serializować obiekt C# do JSON przy użyciu biblioteki JSON.net. Problem, który mam, to ciąg znaków, który jest tworzony, ma w nim wartość "& quot".JSON.net Serialize C# obiekt do JSON Wydanie

Poniżej znajduje się ciąg zwrócony przez JsonConvert.SerializeObject:

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

Running ciąg poprzez JSONLint Powroty:

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

Poniżej jest przedmiotem Próbuję serializacji do 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; } 
} 

Czy robię coś nie tak? Szukałem i wydaje się, że inni, którzy używają tej metody, otrzymują czystsze ciągi! Dziękuję za twój czas z góry!

+0

Dlaczego nie zrobić tego " wymienić od ", a następnie analizować je – jcvegan

+1

Jak używasz JSON Czy odsyłając go z akcji kontrolera Próbowałeś' return JSON (modelu);? ' ? – jrummell

+0

To jest '{" ComId ": null," CovId ": null," EffectiveDate ":" \/Date (-62135596800000 + 0200) \/"," ExpirationDate ":" \/Date (-62135596800000 + 0200) \/"," State ": null," DeductibleAmount ": 0.0," DeductibleType ": null}' co otrzymam, gdy uruchomię ** 'JsonConvert.SerializeObject (new CommonInfoModel())' **. Musisz robić coś z twoim ciągiem po serializacji –

Odpowiedz

74

Twój ciąg jsonów jest kodowany w HTML. Ponieważ renderujesz json w swoim widoku, możesz użyć pomocnika @Html.Raw(), aby zapobiec zakodowaniu.

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

Dziękuję, używając Html.Raw udało mi się posprzątać ciąg! – MetRay

+0

Dobra odpowiedź. –

Powiązane problemy