2017-01-29 1 views
1

Ich möchte mit curl und json eine neue Zeile an ein SmartSheet senden. Ich habe einfachere Befehle geübt und weiß, dass meine Token- und Blatt-ID in Ordnung sind. Ich kann den folgenden Code nicht ausführen lassen. Es würde helfen, einen ähnlichen Code zu sehen, der mit allen Variablen gefüllt ist. Der Code wurde aus der Smartsheet API-Hilfe für AddRow eingefügt. Code:Nach dem Suchen nach Smartsheet-Beispielen, die JSON zum Hinzufügen von Zeilen zu einem Blatt verwenden, kann keine Übereinstimmung gefunden werden.

curl https://api.smartsheet.com/2.0/sheets/1451528792893316/rows -H "Authorization: Bearer TOKEN" -H "Content-Type: application/json" -X POST -d ‚[{ "toTop": true, "Zellen": [{" columnid ": 6554165443880836," Wert ":" VICTOR "}, {" columnId ": 4302365630195588," Wert ":" NP8888 "}]}, {" toTop ": true," Zellen ": [{" columnId ": 6554165443880836, "Wert": "VICTOR"}, {"columnId": 4302365630195588, "Wert": "NP0009"}]}] '-o error.txt Pause

Ich führe dies aus einer Windows-Batch-Datei.

Der Fehler ist:

{ "errorcode": 1008 "message":. „Kann nicht Anforderung analysieren, um die Fehler: Unexpected Zeichen (''‘ (Code 39)): erwartete a gültiger Wert (Zahl, String, Array, Objekt, 'true', 'false' oder 'null') \ n bei [Quelle: REST-Eingabe; Zeile: 1, Spalte: 2] ", " refId ":" oixvszudmnjc " }

Ich kann ein nicht übereinstimmendes Zitat oder Klammern nicht sehen. Was ist los mit dir ?

Chris B

+0

Funktioniert gut für mich! –

Antwort

1

wahrscheinlich aus einer bash arbeiten (zumindest nicht einem Parsing-Fehler nicht geben). Sie haben eine "Windows Batch-Datei" erwähnt, ich vermute, dass die Verwendung der DOS-Shell hier die Kodierung auslöst. Versuchen Sie stattdessen, ein cygwin Bash Shell/Terminal-Fenster zu verwenden.

2

Es sieht so aus, als ob curl oder die Eingabeaufforderung die einfachen Anführungszeichen nicht korrekt verarbeitet. Die Lösung ist eine der folgenden Funktionen ausführen:

  1. in doppelte Anführungszeichen Ihre JSON Wickeln und entkommen dann keine doppelten Anführungszeichen in der JSON-String.

    "[{\ toTop \": true, \ "cells \": [{"columnId": 6554165443880836, "value \": \ "VICTOR \"}, {\ columnId \ " : 4302365630195588, \ "value \": \ "NP8888 \"}], {\ "toTop \": true, \ "cells \": [{\ columnId \ ": 6554165443880836," value \ ": \ "VICTOR \"}, {\ "columnID \": 4302365630195588, \ "value \" \ "NP0009 \"}]}]“

  2. doppelte Anführungszeichen in der JSON String und Rohr die Zeichenfolge während kräuseln curl lesen von der Standardeingabe über den @ - Parameter. Diese Option bedeutet, dass Sie nicht jedem Doppelzitat entkommen müssen.

    echo [{"toTop": true, "Zellen": [{"columnId": 6554165443880836, "value": "VICTOR"}, {"columnId": 4302365630195588, "value": "NP8888"}] }, {"toTop": true, "Zellen": [{"columnId": 6554165443880836, "Wert": "VICTOR"}, {"columnId": 4302365630195588, "Wert": "NP0009"}]}] | curl https://api.smartsheet.com/2.0/sheets/1451528792893316/rows -H "Authorization: Bearer TOKEN" -H "Content-Type: application/json" -X POST -d @ -

  3. Verwenden Sie eine bessere Shell wie cygwin

Auf einer Seite Hinweis pause sollte in einer neuen Zeile und nicht Teil des Curl-Befehls sein.

Verwandte Themen