[英]Inputting JSON data in Powershell
目前,我正在嘗試調用 API 來運行 POST,並將 JSON 數據作為正文。 所以我想知道是否有人能夠告訴我如何在變量$postParams
格式化下面的文本。 我對使用 JSON 還很陌生,所以我遇到了這個問題。
目前,我只有以下內容,不知道如何處理第二行。
$postParams = @{name='Example'}
這是我希望添加到 $postParams 的全部數據。 所以如果你能幫助我解決第 2、4 和 8 項,那就太棒了。 謝謝!
{
"name":"Example",
"template":{"name":"Template"},
"url":"http://localhost",
"page":{"name":"Landing Page"},
"smtp":{"name":"Sending Profile"},
"launch_date":"2019-10-08T17:20:00+00:00",
"send_by_date":null,
"groups":[{"name":"test group"}]
}
您將需要一個here-string和ConvertFrom-Json 。
引號也用於創建 here-string。 here-string 是單引號或雙引號字符串,其中引號按字面解釋。 一個 here-string 可以跨越多行。 here-string 中的所有行都被解釋為字符串,即使它們沒有用引號括起來。
結果代碼:
# Use a PowerShell here string to take JSON as it is
$jsonString = @"
{
"name":"Example",
"template":{"name":"Template"},
"url":"http://localhost",
"page":{"name":"Landing Page"},
"smtp":{"name":"Sending Profile"},
"launch_date":"2019-10-08T17:20:00+00:00",
"send_by_date":null,
"groups":[{"name":"test group"}]
}
"@
# Pipe the string to create a new JSON object
$jsonObject = $jsonString | ConvertFrom-Json
# The resulting JSON object has properties matching the properties in the orig. JSON
$jsonObject.name
$jsonObject.url
# Nested property
$jsonObject.template.name
# Nested property in array
$jsonObject.groups[0].name
我已經在tio.run 上發布了上述代碼的在線版本,因此您可以使用它。
如果要更新$jsonObject
多個屬性,可以執行以下操作:
$jsonObject.name = "NEW NAME"
$jsonObject.url = "NEW URL"
$jsonObject | ConvertTo-Json
ConvertTo-Json將獲取您的對象並創建適當的 JSON 字符串:
{
"name": "NEW NAME",
"template": {
"name": "Template"
},
"url": "NEW URL",
"page": {
"name": "Landing Page"
},
"smtp": {
"name": "Sending Profile"
},
"launch_date": "2019-10-08T17:20:00+00:00",
"send_by_date": null,
"groups": [
{
"name": "test group"
}
]
}
如果您的$jsonObject
具有兩個以上的深度級別,請使用-Depth
參數,否則並非所有對象信息都將包含在 JSON 字符串中。
-深度
指定包含在 JSON 表示中的包含對象的級別數。 默認值為 2。
這是ConvertTo-Json
示例的tio.run 鏈接。
希望有幫助。
我目前無法測試它,但試試這個。
$postParams = @'
{
"name":"Example",
"template":{"name":"Template"},
"url":"http://localhost",
"page":{"name":"Landing Page"},
"smtp":{"name":"Sending Profile"},
"launch_date":"2019-10-08T17:20:00+00:00",
"send_by_date":null,
"groups":[{"name":"test group"}]
}
'@
創建一個哈希表,然后轉換為 JSON:
$Hashtable = @{
Key1 = "Value1"
Key2 = "Value2"
}
$Json = $Hashtable | ConvertTo-Json
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.