[英]c# handle single double quote in the string(json)
我正在使用c#來處理JSON格式來解析一些數據,我遇到過這種情況:我得到這種JSON:
"{"imperial":" 54 1/4" "}"
你可以看到后面有一個英寸符號(雙引號)
1/4
這導致我出錯。 我怎么能處理這個雙引號?
我正在使用Newtonsoft.JSON來解析JSON,我嘗試了很多方法,比如替換“to”,這給了我同樣的錯誤。
我想過正則表達式可能嗎? 有什么建議?
謝謝!
代碼(對於字符串,如<NUMBER>/<NUMBER><DOUBLE QUOTE>
):
string json = "{\"imperial\":\" 54 1/4\" \"}";
string convertedJson = Regex.Replace(json, @"(\d+\/\d+)""", "$1\\\"");
var res = Newtonsoft.Json.JsonConvert.DeserializeObject(convertedJson);
結果(convertedJson):
{"imperial":" 54 1/4\" "}
在提供解析器之前,您需要至少轉義HTML字符(包括引號)。
如果你控制了你正在接收的JSON的生成器,你也在使用Newtonsoft.JSON的JsonWriter
類有一個名為StringEscapeHandling
的屬性。
這個屬性可以包含幾個值: Default
, EscapeNonAscii
和EscapeHTML
(看一下doc )
在您的情況下, EscapeHTML
是最有趣的。 引用文檔:
EscapeHTML
:HTML(<,>,&,',“)和控制字符(例如換行符)被轉義。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.