C#閱讀使用Json.NETC#閱讀使用Json.NET
考慮下面的JSON文本內容JSON內容時保留轉義序列JSON內容時保留轉義序列簡單的類:
public class Rule
{
public string Pattern { get; set; }
public bool Test(string text)
{
return new Regex(Pattern).IsMatch(text);
}
}
而且它deserialised這樣的:
var json = System.IO.File.ReadAllText("file.json");
var rule = JsonConvert.DeserializeObject<Rule>(text);
Pattern
的值應該是一個正則表達式模式。問題是,一旦內容被讀取,「\t
」轉義序列立即作爲轉義字符應用,這是一個製表符,導致字符串值:[0-9]* [a-z]+
。
我的理解是,內容是有些畸形,因爲應該這個樣子:[0-9]*\\t[a-z]+
將JSON內容中是有效的,逃避反斜槓,因此它可以被保留,並導致進入實際圖案[0-9]*\t[a-z]+
。但該文件是用戶編輯的,我只是想能夠寬鬆地解釋內容,假設反斜槓應該保留(並且轉義序列不會被轉換)。
我試圖實現一個自定義JsonConverter
但查找令牌時,該值已解決。
也許我錯了,但不是那些模式等效? '\ t'或一個標籤應該給正則表達式相同的結果,不是? – Rob
'用戶編輯的'。難道你不能假設,如果用戶能夠編輯'JSON'文件,他知道反斜槓需要逃脫? –
@Rob這可能是真的,是的,在'\ t'的情況下,但與正則表達式的複雜性,變化越來越低 – thmshd