簡體   English   中英

在調試模式下顯示字符串

[英]Displaying a string in debug mode

我有一個帶有兩個字符串屬性的對象。 當在調試中查看對象的值時,為什么撇號顯示為\' ,但是當您查看屬性的值時,將其顯示為撇號? 請參見下面的屏幕截圖: 在此處輸入圖片說明

順便說一句,我正在通過控制器的動作接收該對象,這與反序列化該對象有關嗎?

編輯:我剛剛意識到ToString()方法已被覆蓋,並返回此:

new JavaScriptSerializer().Serialize(this);

那么,為什么該方法將單引號轉換為\'t呢?

因為它是有效的( '\'是JavaScript / JSON的同一字符的不同表示形式),並且在引號字符串內不能包含引號。 即使可以在JSON字符串“'”和'“''中使用相反的引號,也可以對兩種類型的引號進行轉義以進行JSON序列化是比較安全的。

請注意,JSON.Net版本更聰明,不會轉義所有引號:

Console.WriteLine(new JavaScriptSerializer().Serialize("a'b")); // "a\u0027b"
Console.WriteLine(JsonConvert.SerializeObject("a'b")); // "a'b"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM