【问题标题】:How can I show inside of System.Object[] Powershell, invoke-webrequest如何在 System.Object[] Powershell、invoke-webrequest 中显示
【发布时间】:2016-01-12 15:58:55
【问题描述】:

我的代码是这样的

       $username = "username"
        $password = "password"

        $base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $username,$password)))

        $response = Invoke-RestMethod -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)} -Uri https://api.bitbucket.org/2.0/teams/Ateam/members -Method Get

$new = $response |select Values 

$new

$new|Export-Csv C:\Users\helloworld\Desktop\BitBucket\Ateam.team.csv -NoTypeInformation  

当我执行这个脚本时,我可以在我的 Powershell Board 上看到像这样的“Values”的内部。

values                                                                                                                                                                                                                             
------                                                                                                                                                                                                                             
{@{username=helloworld; website=; display_name=rhelloworld; uuid ={dewi3urgfj-.

但我检查了我的 csv,它是这样写的

values
System.Object[]

我也想像这样在我的 csv 上显示,

 {@{username=helloworld; website=; display_name=rhelloworld; uuid ={dewi3urgfj-.

当我执行“$new”时,如何在 csv 中显示“System Object[]”的内部?

【问题讨论】:

  • 你试过ConvertFrom-Json吗?

标签: json csv powershell


【解决方案1】:

您的对象 $new 中有一个附加属性“值”。目前它将“值”导出为列,然后将对象列表导出为单元格。

您可以像这样将您的单元格转换为 JSON:

$new.values  = $new.values | ConvertTo-Json -Compress

但我个人不明白您为什么要像这样导出到 CSV。它很难读,而且 CSV 只有一列一行。

您确定不只是想像这样将对象列表导出到 CSV:

$new.values | Export-Csv C:\Users\helloworld\Desktop\BitBucket\Ateam.team.csv -NoTypeInformation

【讨论】:

  • 非常感谢您的回答,我不想像您提到的那样导出数据。所以我提出了另一个问题,如果你知道,请告诉我。 stackoverflow.com/questions/34752724/…
  • 我认为有些地方理解有误。您能否发布从您的 Web 服务返回的整个 JSON,然后解释您希望 csv 的样子?只有在您需要搜索如何转换为 csv 之后
  • 我试过这样 $csvinfo = $new.values| ConvertFrom-Json |select username,username,website,display_name,uuid,l inks__hooks,l inks__self,l inks__repositories |Convertto-CSV -NoTypeInformation 错误是 Select-Object : A positional parameter cannot be found that accept argument 'System.Object[ ]'。
  • 这不好。您正在做很多转换。忘记我的回答。试着退后一步,想想你想做什么,用网络服务发送的响应编辑你的帖子,在你的帖子中添加你希望 csv 的样子,然后(只有这样)有人可以提供帮助你有你需要的代码。
  • @非常感谢您的帮助!!!!!!我找到了方法!!!!这正是我想要的。$new.values = $new.values |ConvertTo-Json -Compress $csv = $new.values| ConvertFrom-JSON $csv|Export-Csv .................... -NoTypeinformation
猜你喜欢
  • 2020-12-03
  • 1970-01-01
  • 1970-01-01
  • 2017-07-26
  • 2020-03-17
  • 1970-01-01
  • 1970-01-01
  • 2021-11-07
相关资源
最近更新 更多