2014-10-10 157 views
2

我一直在使用PowerShell努力获取API调用的结果Brightpearl作为一个JSON字符串:Powershel:●解析嵌套的JSON

我想只获得了部分称为结果....

"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]]} 

使用ConvertFrom-JSON($ BpResults.Content),我只得到了外JSON ....

PS C:> convertfrom-json $BPOrders.Content 

response               reference              
--------               ---------              
@{metaData=; results=System.Object[]}       @{orderTypeNames=; orderPaymentStatusNames=; orderStatusNames... 

我想,也许有些其余的将获得通过挖掘到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" 
     } 
    } 
} 

回答

1

ConvertFrom-Json返回一个对象,你可以用Select-Object检查。

+0

我我的手机上打字所以它会带我一段时间才能理清选择对象 – 2014-10-10 16:58:29

+0

感谢确切的论据...会看一看,然后回报。 --- L – user2901305 2014-10-10 17:37:11

+0

嗨.... Jason:根据您的建议,我做了以下操作: PS C:> BPJson = BPOrders.Content | ConvertToJson – user2901305 2014-10-10 18:07:44

2
ConvertFrom-Json $JSONObject 

那么你就可以解决这些问题,如:

$JSONObject.response.results