Forum Discussion

TravisKale's avatar
TravisKale
Helper I
5 years ago

PowerShell ConvertFrom-Json Does not Create All Properties of API Result

I am issuing the following via PowerShell

 

 

$apiResult = Invoke-PowerBIRestMethod -Url 'https://api.powerbi.com/v1.0/myorg/admin/groups?$expand=dashboards,users,reports,datasets,dataflows,workbooks&$top=5000' -Method Get | ConvertFrom-Json

 

 

The call works and everything is returned, however, on the Group object there is only a boolean "IsOnDedicatedCapcity" field, and not a CapacityId. 

 

If I exclude the | ConvertFrom-Json, and look at the Raw JSON, the property is there.   I'm guessing since the first object returned does not have a CapacityId, when PowerShell tries to create an ojbect to store the result that the CapcityId property is excluded. 

 

To test this theory I changed the API call to use a filter to only return groups on a capacity via...

 

 

'https://api.powerbi.com/v1.0/myorg/admin/groups?$filter=isOnDedicatedCapacity eq true & $expand=dashboards,users,reports,datasets,dataflows,workbooks&$top=10'

 

 

Now, when I issue the ConvertFrom-Json, the CapacityId property is present on the object PowerShell creates for me. 

 

This is probably more of a PowerShell question at this point but is there a way to force the ConvertFrom-Json method to include all properties in the object array even if the first element property is not present?

2 Replies

  • wonder what happens when you don't expand the related entities?

    • TravisKale's avatar
      TravisKale
      Helper I

      Calls which did not expand the related entities had the same result.  I did further testing and modified the original post with updated info.  Is more a powershell issue then a Power BI API issue.   I guess this is why the cmdlets exist, I am going to turn back to the PS cmdlets as the issue I was having with them is easier to workaround than this issue.  Thanks for taking a look lbendlin