如何使用c#为字符串赋值参数值

时间:2015-11-09 16:15:06

标签: c# json rest deserialization attask

我正在研究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"
  } 
}

我将非常感谢您的解释和可能的解决方案。提前谢谢!

1 个答案:

答案 0 :(得分:1)

我没有看到任何文档说您可以按照尝试访问它们的方式访问子值。

我会尝试使用点符号,例如

taskAssgTo = c.Value<string>("assignedTo.name");

或按照以下链接查看如何导航JObject层次结构

Searching for a specific JToken by name in a JObject hierarchy