2012-02-17 4 views
22

JSON.net kitaplığı kullanarak bir C# nesnesini JSON'a serileştirmeye çalışıyorum. Sahip olduğum sorun, oluşturulan dizenin içinde & quot bulunuyor. Ben JSON içinde seri hale getirmek çalışıyorum nesne AşağıdaJSON.net Serialize C# nesnesini JSON Issue

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

edilir:

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

JSONLint döner aracılığıyla dize Koşu: Aşağıda

JsonConvert.SerializeObject üzerinden geri dizedir
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; } 
} 

Yanlış bir şey yapıyorum? Arama yaptım ve bu yöntemi kullanan diğerlerinin daha temiz dizeler alması gibi görünüyor! Zaman ayırdığınız için şimdiden teşekkür ederiz!

+0

Eğer 'dönüş Json (modelini) denediniz Bir Kontrolör Eylem gelen iade Are Neden o " arasında yerini yapmazlar" ve JSON kullanarak nasıl ardından – jcvegan

+1

ayrıştırmak; ' ? – jrummell

+0

Bu "{" ComId ": null," CovId ": null," EffectiveDate ":" \/Date (-62135596800000 + 0200) \/"," ExpirationDate ":" \/Date (-62135596800000 + 0200) \/"," State ": null," DeductibleAmount ": 0.0," DeductibleType ": null}' çalıştırdığımda aldığım ** jsonConvert.SerializeObject (yeni CommonInfoModel()) '**. –

cevap

74

Json dizginiz HTML olarak kodlanmış. Json'u görünümünüzde oluşturduğunuzdan, kodlanmasını önlemek için @Html.Raw() yardımcı programını kullanabilirsiniz. ?

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

Teşekkür ederim, Html.Raw kullanarak dize temizleyebildim! – MetRay

+0

İyi cevap. –