c#从String中取出某些单词

时间:2015-07-02 22:04:23

标签: c# extract

当我得到http响应时,它看起来像这样:

{
"course_editions": {
"2014/SL": [
  {
    "course_id": "06-DEGZLI0",
    "term_id": "2014/SL",
    "course_name": {
      "en": "Preparation for bachelor exam",
    }
  },
  {
    "course_id": "06-DPRALW0",
    "term_id": "2014/SL",
    "course_name": {
      "en": "Work experience",
    }
  },
  {

我希望能够只提取课程名称,例如:

Work experience
Preparation for bachelor exam

我试过这个:

string probably_json = GetResponse(url_courses);
object obj = JsonConvert.DeserializeObject(probably_json);
        using (StringReader reader = new StringReader(obj.ToString().Replace("\\t", "    ").Replace("\\n", "\n")))
            {
                string line;
                int lineNo = 0;
                while ((line = reader.ReadLine()) != null)
                {
                    if (line.Contains("en"))
                    {
                        string output = line.Substring(0, line.Length-1);
                        Console.WriteLine(output);
                    }
                    ++lineNo;
                }
            } // End Using StreamReader

但是我得到了所有这些:

"en": "Preparation for bachelor exam"          "en": "Work experience"

我应该做什么,只获得课程名称?

1 个答案:

答案 0 :(得分:2)

如果您正在使用json.net,请让它做一些工作,不要自己解析:

var result = JObject
    .Parse(probably_json)
    .SelectTokens("['course_editions'].['2014/SL'].[*].['course_name'].['en']");