C# 获取JSON字符串中指定KEY的值
背景
从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 }