背景
從Markdown系統API接口獲取到JSON格式數據,JSON字符串是不規范的或者說是很難以獲取doc_id字段(位於樹的葉子節點,但是卻不知道有多少個枝干節點),這時想到了采用正則表達式獲取指定KEY的值,於是產生了這篇文章。
適用場景
- 不想要解析整個JSON字符串,只想獲取其中某個KEY的值
- JSON字符串對應的對象比較難以構造,只需要獲取其中某幾個KEY的值
- JSON字符串不規范,只需要獲取指定KEY的值(特別是有一些是數組對象,有一些是非數據對象)
代碼
1 /// <summary> 2 /// 獲取JSON字符串中指定KEY的值 3 /// </summary> 4 /// <param name="jsonString"></param> 5 /// <param name="key"></param> 6 /// <returns></returns> 7 public List<String> GetJsonValue(String jsonString, String key) 8 { 9 String pattern = $"\"{key}\":\"(.*?)\\\""; 10 MatchCollection matches = Regex.Matches(jsonString, pattern, RegexOptions.IgnoreCase); 11 List<string> lst = new List<string>(); 12 foreach (Match m in matches) 13 { 14 lst.Add(m.Groups[1].Value); 15 } 16 17 return lst; 18 }