Windchill Navigate API > 使用 API > 检索数据 > 重新格式化结果集
重新格式化结果集
API 以 CCO 格式提供数据。各种小组件需要以不同格式输入数据,因此可能需要进一步处理以确保兼容性。下面的示例说明如何向网格小组件提供数据,该小组件需要以信息表作为其输入。
检查由 API 服务提供的示例结果 JSON。可以看到,它们遵循特定的架构。
让我们以 Search 服务的结果 JSON 为例:
{
"timeStamp": "2025-02-09 19:38:56.058",
"data": [
{
"Item ListsData": [
{
"metadata": {
"Number": {
"label": "Number",
"type": "STRING"
},
"Version": {
"label": "Version",
"type": "STRING"
},
"ID": {
"label": "ID",
"type": "STRING"
},
"Name": {
"label": "Name",
"type": "STRING"
},
"State#Display": {
"label": "State",
"type": "STRING"
}
},
"items": [
{
"Number": {
"value": "0000000027"
},
"Version": {
"value": "A.1 (Design)"
},
"ID": {
"value": "OR:wt.part.WTPart:603745"
},
"Name": {
"value": "TestPart001"
},
"State#Display": {
"value": "In Work"
}
},
{
"Number": {
"value": "0000000036"
},
"Version": {
"value": "A.3 (Design)"
},
"ID": {
"value": "OR:wt.part.WTPart:668555"
},
"Name": {
"value": "TestPart007"
},
"State#Display": {
"value": "In Work"
}
}
],
"objectType": "PTC.ProdMgmt.Part"
}
],
"adapter": {
"instanceName": "windchill",
"thingName": "PTC.VOps.WCOperationAdapter"
}
}
],
"statusMessage": "OK",
"status": "200"
}
此处的值 (由部件列表组成) 在 [result].data[0].Item ListsData[0].items 中以 JSON 数组的形式返回。
我们可以使用 JS 帮助程序服务来检索此数据。假定 "inputs" 保存 Search 服务的结果:
if (inputs && inputs.data[0].Item ListsData[0].items) {
result = inputs.data[0].Item ListsData[0].items;
} else {
result = {};
}
您可以将此部件列表作为信息表返回。此处,结果信息表的架构为数据形状 "Views":
result = Resources["InfoTableFunctions"].CreateInfoTableFromDataShape({
infoTableName: "InfoTable",
dataShapeName: "Views"
});
if (inputs && inputs.data[0].Item ListsData[0].items) {
partsList = inputs.data[0].Item ListsData[0].items;
for (let index = 0; index < partsList.length; index++) {
let newEntry = {
name: partsList[index].Name.value + " " + partsList[index].Version.value,
type: undefined, // STRING
value: partsList[index].ID.value, // STRING
partPath: undefined // STRING
};
result.AddRow(newEntry);
}
}
这对您有帮助吗?