2015-04-30 45 views
2

當我有一個對象說:JsonConvert.SerializeObject failes具有單引號

public class Comment { 
    public string Id { get; set; } 
    public string Author { get; set; } 
    public string Body { get; set; } 
} 

每當我有一個單引號在體內(其他增值經銷商將永遠不會有他們)

以下行崩潰:

return JObject.Parse("{ 'Result' : 'Sucessfull!', 'Comment' : '" + JsonConvert.SerializeObject(comment) + "' }"); 

而且我敢肯定,這在身上,因爲當我做這樣的事情這只是發生:

comment.Body = "testing th's "; 

和其他值是動態設置的,適用於沒有單引號的機構。 任何線索爲什麼會發生這種情況?

注:我需要升級comment.Body來支持以後新的生產線,如果這是相關

回答

1

試試這個

Comment comment = new Comment() 
{ 
    Body = "testing th's ", 
    Author = "Author", 
    Id = "007" 
}; 

var result = new 
{ 
    Result = "Sucessfull!", 
    Comment = comment 
}; 

return JsonConvert.SerializeObject(result); 
2

爲什麼你添加comment對象的JSON作爲純文本?你試圖解析的是這個字符串:

{ 'Result' : 'Sucessfull!', 'Comment' : '{"Id":null,"Author":null,"Body":"testin 
g th's"}' } 

很明顯,它不是一個有效的JSON字符串。所有你需要做的是重寫你的代碼一點點:

return JObject.Parse("{ 'Result' : 'Sucessfull!', 'Comment' : " + JsonConvert.SerializeObject(comment) + " }"); 
+0

啊,那是錯了!謝謝 – Kiwi