从JSON字符串

时间:2017-06-27 07:50:51

标签: c# json

我有一段时间从json获得一个特定的价值,我希望有人可以提供帮助。我使用的json来自一个表单帖子,因此每次都会有所不同,但ID总是相同的(就像每个表单一样!)...而且我无法控制格式杰森。我可以从这里获得名称值就好了(使用Newtonsoft.Json),但我仍然坚持如何获得"超过5年"值...

以下是我用来获得"我的名字是"价值,(显然)不适用于"就业年限"。

C#:

obj["form_response"]["answers"].SelectToken("$.[?(@field.id == '26')]..text").ToString();

JSON:

{
   "event_type":"form_response",
   "form_response":{
      "definition":{
         "id":"c33500e5",
         "title":"Employee Satisfaction",
         "fields":[
            {
               "id":"33",
               "title":"Years of employment:",
               "type":"multiple_choice"
            },
            {
               "id":"26",
               "title":"My name is:",
               "type":"short_text"
            }
         ]
      },
      "answers":[
         {
            "type":"choice",
            "choice":{
               "label":"More than 5 years"
            },
            "field":{
               "id":"33",
               "type":"multiple_choice"
            }
         },
         {
            "type":"text",
            "text":"Bill Dunn",
            "field":{
               "id":"26",
               "type":"short_text"
            }
         }
      ]
   }
}

1 个答案:

答案 0 :(得分:0)

您想要的值嵌套如下:{ "choice": { "label": "More than 5 years", ... } }所以您可以这样做:

var result = obj["form_response"]["answers"].SelectToken("$.[?(@field.id == '33')].choice.label");
var resultJson = result.ToString();