2016-11-20 2 views
0

Ich benutze Rest API auf Ruby mit Sinatra. bekam ich die Zahlungsinformationen aus IAMPORT ,,,Ruby auf Sinatra, JSON :: ParserError Problem und 757: unerwartete Token

def get_authrestapi() 
    @key = IMP_KEY 
    @secret = IMP_SECRET 

    response = RestClient.post 'https://api.iamport.kr/users/getToken', {'imp_key' => @key, 'imp_secret' => @secret}, :accept => :json 

    json = JSON.parse(response.to_json, symbolize_names: true) 

    return json['response']['access_token'] 
end 

aber bekam ich Nachricht Fehler ... wie unten

JSON :: ParserError at/Zahlungen 757: unerwartetes Token ‚ "{\" -Code \ ": 0, \ message \": null, \ "response \": {\ "access_token \": \ "9898 ....", "..."}} ''

Wie kann Ich löse dieses Problem? Ich denke ,, es gibt Problem, dass Variable 'Json' ist nicht HASH ..

Danke.

+0

Ich benutze auch diesen Code. # json = JSON.parse (Antwort,: symbolize_names => true) aber, in diesem Fall gibt es einen Fehler, der undefinierte Methode '[' –

Antwort

1

Konvertieren Sie die Antwort nicht in json. Es ist schon json.

Ersetzen Sie die folgende Zeile:

json = JSON.parse(response.to_json, symbolize_names: true) 

mit:

json = JSON.parse(response, symbolize_names: true) 
+0

warum brauchen 'to_s'? –

+0

@ Зелёный, vergaß die Antwort ist String-ähnliches Objekt. die 'to_s' entfernt. Danke für die Bewertung. – falsetru

+0

Antwort nach der Dokumentation ist es ein Objekt, aber https://github.com/rest-client/rest-client#usage-raw-url 'response.body' Rückgabe einer Zeichenfolge Ich bin ein bisschen verwirrt. Aber deine Antwort ist richtig. –

Verwandte Themen