簡體   English   中英

c#處理字符串中的單雙引號(json)

[英]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的屬性。

這個屬性可以包含幾個值: DefaultEscapeNonAsciiEscapeHTML (看一下doc

在您的情況下, EscapeHTML是最有趣的。 引用文檔:

EscapeHTML :HTML(<,>,&,',“)和控制字符(例如換行符)被轉義。

暫無
暫無

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

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