我正在研究workfront api和我的应用程序的实现。这应该很简单。也许我的代码会更好地解释。
JToken tasks = client.Search(ObjCode.TASK, new { fields = "ID, extRefID, assignedTo:name" });
taskid = c.Value<string>("ID");
workItem = c.Value<string>("extRefID");
taskAssgTo = c.Value<string>("assignedTo:name");
现在,taskid和workItem正确返回值。我无法理解为什么taskAssgTo将始终返回null。在debuggin时,我可以清楚地看到assignedTo:name有正确的值,但由于某种原因我不会将它分配给taskAssgTo。 (taskAssgTo是一个字符串变量)。
这是使用REST检索数据时的外观:
{
"ID": "4c78285f00000908ea8cfd66e084939f",
"extRefId": "4561",
"assignedTo": {
"ID": "4c78285f00000908ea8cfd66e084215a",
"name": "Admin User"
}
}
我将非常感谢您的解释和可能的解决方案。提前谢谢!
答案 0 :(得分:1)
我没有看到任何文档说您可以按照尝试访问它们的方式访问子值。
我会尝试使用点符号,例如
taskAssgTo = c.Value<string>("assignedTo.name");
或按照以下链接查看如何导航JObject层次结构
Searching for a specific JToken by name in a JObject hierarchy