我使用JSON.Net。
我为预期的Json写了一个强类型表示法:
public BaseClass{
[JsonProperty("fields")]
public Fields Fields { get; set; }
}
public class Fields
{
[JsonProperty("worklog")]
public List<WorkLog> WorkLog { get; set; }
}
预期Json的样本:
{
"baseprop": {
"fields": {
"worklog": {
"startAt": 0,
"maxResults": 20,
"total": 2,
"worklogs": [
{
"self": "",
"author": {},
"updateAuthor": {},
"comment": "UpdatedcouriersT&C",
"created": "2015-09-04T19: 11: 27.169+0300",
"updated": "2015-09-04T19: 13: 00.567+0300",
"started": "2015-09-04T19: 11: 00.000+0300",
"timeSpent": "1h",
"timeSpentSeconds": 3600,
"id": ""
},
{
"self": "",
"author": {},
"updateAuthor": {},
"comment": "",
"created": "2015-09-07T10: 26: 23.549+0300",
"updated": "2015-09-07T10: 26: 23.549+0300",
"started": "2015-09-07T10: 26: 00.000+0300",
"timeSpent": "10m",
"timeSpentSeconds": 600,
"id": ""
}
]
}
}
}
}
我如何获得该物业的价值&#34;工作日志&#34;来自&#34; baseprop&#34;元件?
我试过像"[JsonProperty("worklog/worklogs")]"
这样的东西,但这不起作用。
JsonProperty是否支持这样的事情?
由于
答案 0 :(得分:0)
我认为混淆来自于您正试图将JSON的完整结构重新映射到您的班级。
也许您应该考虑的不是反序列化对象,而是使用Linq到Json并手动分配BaseClass
对象的属性,如下所示:
var jObject = JObject.Parse(jsonString);
BaseClass bc = new BaseClass()
bc.Assignee = jObject["fields"]["worklog"]["worklogs"].First()["assignee"].Value<string>()