从Sharepoint 2013客户端对象模型中获取分类集合

时间:2013-09-24 19:53:21

标签: sharepoint-2013 sharepoint-object-model

我能够成功找回我存储在Sharepoint中的类型列表。这是非正式的TaxonomyCollection我相信。客户端对象将其发送回去的方式有点奇怪,难以采取并放入另一种形式。也许我做错了什么?

这是我回来的JSON :(参见Genres节点下的项目)。我想获得Label值。看起来很直接。

enter image description here

现在这是客户端对象模型中实际返回的内容。

enter image description here

这只是疯了,这是我为了获得一种类型的标签而编写的代码:

var items = clientContext.Web.Lists.GetByTitle("Contacts").GetItems(itemsQuery);
//Execution code removed for brevity
Dictionary<string,object> g = ((Dictionary<string,object>)items.ToList()
                               .First()["Genres"]);
var g2 = g.ToList()[1];
var g3 = (object[])g2.Value;
var g4 = (object[])((Dictionary<string, object>) g3[0]).Values.ToArray();
var g5 = g4[1].ToString();

正如你所看到的那样丑陋并写一个linq语句来最终获得所有标签同样丑陋且难以编写。我在想我做错了。有什么建议吗?

1 个答案:

答案 0 :(得分:1)

使用this as a reference.

解决方案是:

(items[0]["Genres"] as TaxonomyFieldValueCollection).ToList().Select(x=> x.Label);