Ich habe eine Hilfsmethode, die eine API aufruft. Die API konvertiert eine Textdatei in eine PDF-Datei und antwortet mit dem ursprünglichen Dateipfad, dem neuen Dateipfad und der Anzahl der Seiten. Die Antwort des api sieht wie folgt aus:Wie Hash-Werte korrekt analysieren?
response[:numPages]
response[:previewPath]
aber wenn ich versuche, den Hash auf diese Weise zu analysieren:
response = {"originalPath":"FILE_PATH", "previewPath":"DIFFERENT_PATH", "numPages":1}
Von meinem Verständnis, ich sollte die Schlüsselwerte zuzugreifen, wie diese in der Lage sein, , Bekomme ich einen TypeError (keine implizite Umwandlung von Symbol in Integer). Ich bin ziemlich überrascht von dieser Antwort, irgendwelche Gedanken?
EDIT
Dies wurde vor für mich tatsächlich arbeitet, und ich war die Antwort wie diese Analyse:
res = RestClient.post(uri.join,
{
:file => File.new(file_path, 'rb')
})
response = []
response << res.split(/>(\d)</)[1]
response << res.split(/<previewPath>(L:\\MailFiles\\PDF\\sub_order_\d*\.pdf)/)[1]
response
Wie gesagt, dies vor für mich gearbeitet, aber jetzt, wenn ich, dass das Rück zurück zum rufenden Controller, meine Antwort lautet:
Sehr verwirrt von diesem.
EDIT
Jetzt habe ich die oben geändert wie folgt aussehen:
response << res.body
die wie folgt aussieht:
["{\"originalPath\":\"L:\\\\MailFiles\\\\Originals\\\\file.plain\",\"previewPath\":\"L:\\\\MailFiles\\\\PDF\\\\sub_order_110986.pdf\",\"numPages\":1}"]
Welche widerlich wie die Hölle ist, aber zumindest Ich denke, ich kann das analysieren. Wir werden weiter updaten, danke für die Kommentare der Leute!
Können Sie Code für die Analyse der API-Antwort einfügen? –
Es hängt davon ab, wie es analysiert wird. Es gibt einen Unterschied zwischen einem HWIA und einem einfachen Hash, z. B. "Antwort ['numPages']" sollte funktionieren, wenn es kein HWIA ist. –