我一直在使用 PowerShell 以 JSON 字符串的形式检索对 Brightpearl 的 API 调用的结果:
我只想检索名为结果的部分....
"results":[[1,1,207,4,3,"2014-09-18T14:15:50.000-04:00",4,"#1014",2],[2,1,207,1,3,"2014-09-29T13:20:52.000-04:00",4,"#1015",2],[3,1,207,1,3,"2014-09-29T13:25:39.000-04:00",4,"#1016",2]]}
Run Code Online (Sandbox Code Playgroud)
使用 ConvertFrom-Json($BpResults.Content),我只得到外部 JSON....
PS C:> convertfrom-json $BPOrders.Content
response reference
-------- ---------
@{metaData=; results=System.Object[]} @{orderTypeNames=; orderPaymentStatusNames=; orderStatusNames...
Run Code Online (Sandbox Code Playgroud)
我想也许剩下的一些可以通过深入研究 System.Object[] 来获得……但无法弄清楚访问它的语法。理想情况下,我想将结果写入 .CSV 文件。
有任何想法吗?
"Original": {
"response": {
"metaData": {
"resultsAvailable": 3,
"resultsReturned": 3,
"firstResult": 1,
"lastResult": 3,
"columns": [
{
"name": "orderId",
"sortable": true,
"filterable": true,
"reportDataType": "IDSET",
"required": false
},
{
"name": "orderTypeId",
"sortable": true,
"filterable": true,
"reportDataType": "INTEGER",
"referenceData": [
"orderTypeNames"
],
"required": false
},
{
"name": "contactId",
"sortable": true,
"filterable": true,
"reportDataType": "INTEGER",
"required": false
},
{
"name": "orderStatusId",
"sortable": true,
"filterable": true,
"reportDataType": "INTEGER",
"referenceData": [
"orderStatusNames"
],
"required": false
},
{
"name": "orderStockStatusId",
"sortable": true,
"filterable": true,
"reportDataType": "INTEGER",
"referenceData": [
"orderStockStatusNames"
],
"required": false
},
{
"name": "createdOn",
"sortable": true,
"filterable": true,
"reportDataType": "PERIOD",
"required": false
},
{
"name": "createdById",
"sortable": true,
"filterable": true,
"reportDataType": "INTEGER",
"required": false
},
{
"name": "customerRef",
"sortable": true,
"filterable": true,
"reportDataType": "STRING",
"required": false
},
{
"name": "orderPaymentStatusId",
"sortable": true,
"filterable": true,
"reportDataType": "INTEGER",
"referenceData": [
"orderPaymentStatusNames"
],
"required": false
}
],
"sorting": [
{
"filterable": {
"name": "orderId",
"sortable": true,
"filterable": true,
"reportDataType": "IDSET",
"required": false
},
"direction": "ASC"
}
]
},
"results": [
[
1,
1,
207,
4,
3,
"2014-09-18T14: 15: 50.000-04: 00",
4,
"#1014",
2
],
[
2,
1,
207,
1,
3,
"2014-09-29T13: 20: 52.000-04: 00",
4,
"#1015",
2
],
[
3,
1,
207,
1,
3,
"2014-09-29T13: 25: 39.000-04: 00",
4,
"#1016",
2
]
]
},
"reference": {
"orderTypeNames": {
"1": "SALES_ORDER"
},
"orderPaymentStatusNames": {
"2": "PARTIALLY_PAID"
},
"orderStatusNames": {
"1": "Draft/Quote",
"4": "Invoiced"
},
"orderStockStatusNames": {
"3": "Allfulfilled"
}
}
}
Run Code Online (Sandbox Code Playgroud)
小智 5
ConvertFrom-Json $JSONObject
Run Code Online (Sandbox Code Playgroud)
那么你可以像这样解决它们:
$JSONObject.response.results
Run Code Online (Sandbox Code Playgroud)