2016-08-02 10 views
1

Ich konnte das dynamische JSON-Objekt übergeben, wenn der Objekterstellungscode in einer einzigen Zeile ist.Dynamische JSON-Variable zum Füttern Invoke-Restmethod

Invoke-RestMethod -ContentType "application/json" -Method Post -Body '{ "name" : "azurefunctionapp2email", "appname": "Applicationnamehere", "requestedBy" : "requestedby", "reqdate" : "requestdate", "status" : "Successfully Deployed", "AppsCount" : "2" }' ` 
    -Uri “https://implementurihere" 

Da das dynamische JSON-Objekt in der realen Welt länger sein muss, separierte ich mit neuer Linie erstellt and referenced in the above as below. But new line shift die json verursacht zu brechen. Ich habe versucht, ConvertTo-Json Funktion Rohr und dann festgestellt, um die Ausgabe zu halten ‚'\ r \ n‘ eingeführt zu werden:

$body = '{ "name" : "azurefunctionapp2email", ` 
     "appname": "Applicationnamehere", ` 
     "requestedBy" : "requestedby", ` 
     "reqdate" : "requestdate", 
     "status" : "Successfully Deployed", 
     "AppsCount" : "2" }' ` 

Invoke-RestMethod -ContentType "application/json" -Method Post -Body $body ` 
    -Uri “https://implementurihere" 

Hinweis: Die oben genannten Arbeiten, wenn die $body ist einzige Zeile.

Wie in solchen Szenarien, wo wir eine dynamische JSON, lange Datei und Feed erstellen?

Antwort

2

Ihr Beispiel funktioniert nicht, weil die letzte Zeile enthält einen Backtick, die Sie weglassen müssen.

könnten Sie ein here string benutzen, um Ihre JSON zu definieren, so dass Sie von einem Graviszeichen nicht jede Zeile trennen müssen:

$body = 
@' 
    { "name" : "azurefunctionapp2email", 
     "appname": "Applicationnamehere", 
     "requestedBy" : "requestedby", 
     "reqdate" : "requestdate", 
     "status" : "Successfully Deployed", 
     "AppsCount" : "2" } 
'@ 

Sie könnten auch eine Powershell-Hash-Tabelle zu verwenden, Ihre Aufgabe zu definieren, wird erlaubt Sie können Variablen verwenden, ohne dass eine Formatzeichenfolge benötigt wird:

$bodyObject = @{ 
    name = 'azurefunctionapp2email' 
    appname = 'Applicationnamehere' 
    requestedBy = 'requestedby' 
    reqdate = 'requestdate' 
    status = 'Successfully Deployed' 
    AppsCount = '2' 
} 

$bodyObject | ConvertTo-Json 
+0

Ja, vielen Dank. –

Verwandte Themen