我正在嘗試使用C#的Autodesk forge API獲取集線器列表。 這是我迄今所做的: 使用Autodesk Forge API接收集線器列表
HubsApi api = new HubsApi();
Hubs hubs = api.GetHubs();
很簡單。但是當我這樣做時,我會得到一個例外,抱怨,不能將DynamicJsonResponse
轉換爲Hubs
。我想,這是因爲我在響應字符串中收到兩條警告,所以它不再是集線器對象。該警告是這樣的:
"warnings":[
{
"Id":null,
"HttpStatusCode":"403",
"ErrorCode":"BIM360DM_ERROR",
"Title":"Unable to get hubs from BIM360DM EMEA.",
"Detail":"You don't have permission to access this API",
"AboutLink":null,
"Source":[
],
"meta":[
]
}
所有這一切都被包裝在一個字典有四個條目,其中只有兩個是數據。但是,根據Autodesk的說法,這個警告可以忽略。
所以之後,我試圖將其轉換成一個解釋,只選擇數據輸入
HubsApi api = new HubsApi();
DynamicJsonResponse resp = api.GetHubs();
DynamicDictionary hubs = (DynamicDictionary)resp.Dictionary["data"];
然後,我通過它循環:
for(int i = 0; i < hubs.Dictionary.Count && bim360hub == null; i++)
{
string hub = hubs.Dictionary.ElementAt(i).ToString();
[....]
}
但字符串hub
不一個json-hub。它是一個看起來像這樣的數組:
[
0,
{
"type": "hubs",
"id": "****",
"attributes": {...},
"links": {...},
"relationships": {...},
}
]
而數組中的第二個元素是我的集線器。我知道,我如何選擇第二個元素。但要獲得樞紐清單一定要容易得多。 在引用它seemd與這些代碼簡單的兩行的示例:
HubsApi api = new HubsApi();
Hubs hubs = api.GetHubs();
任何想法,我如何管理讓我的樞紐?