我有一段时间从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"
}
}
]
}
}
答案 0 :(得分:0)
您想要的值嵌套如下:{ "choice": { "label": "More than 5 years", ... } }
所以您可以这样做:
var result = obj["form_response"]["answers"].SelectToken("$.[?(@field.id == '33')].choice.label");
var resultJson = result.ToString();