Ruby on Rails und der JSON parser von URL
Ich 'gem json' und müssen laden der JSON-Daten von einigen url, zum Beispiel:
"http://locallhost:3000/qwerty/give_json.json"
mit
{"one":"Omg","two":125,"three":"Hu"}
Habe ich rails app
class QwertyController < ApplicationController
require 'json'
def get_json
source = "http://localhost:3000/qwerty/give_json.json"
@data = JSON.parse(JSON.load(source))
end
end
Bekomme ich Fehler
JSON::ParserError in QwertyController#get_json
795: unexpected token at 'http://localhost:3000/qwerty/give_json.json'
String: @Daten = JSON.parse(JSON.load(source))
Was ist die Materie? Wie bekomme ich die JSON-Daten und analysieren Sie diese? Ich versuche @data["eins"] ...
Sieht aus wie Sie haben ungültige JSON-in der Quelle
Nein ist es nicht. Erstellt habe ich eine rails-app, über die Generierung der JSON-Antwort auf port 3000 (localhost:3000/qwerty/give_json.json). Und die zweite app, die versuchen, um JSON-Daten auf port 3001 (localhost:3001/qwerty/get_json)
Was ruby version verwenden Sie? Sie brauchen nicht zu verlangen, json, in den neueren Versionen von rails und ruby...
alexkd@Aktive-pc:~$ ruby -v ruby 1.9.3p448 (2013-06-27 revision 41675) [i686-linux] alexkd@Aktive-pc:~$ rails -v Rails 4.0.0
Ja, Sie haben ungültige JSON. Sie sind dem Aufruf von JSON.laden über eine URL-Zeichenfolge, die nicht ein JSON-Objekt. , Ungültiges JSON. JSON.laden nicht zum Lesen von Daten aus einer url-Sie sind nur auf der Durchreise zu dem string in
Nein ist es nicht. Erstellt habe ich eine rails-app, über die Generierung der JSON-Antwort auf port 3000 (localhost:3000/qwerty/give_json.json). Und die zweite app, die versuchen, um JSON-Daten auf port 3001 (localhost:3001/qwerty/get_json)
Was ruby version verwenden Sie? Sie brauchen nicht zu verlangen, json, in den neueren Versionen von rails und ruby...
alexkd@Aktive-pc:~$ ruby -v ruby 1.9.3p448 (2013-06-27 revision 41675) [i686-linux] alexkd@Aktive-pc:~$ rails -v Rails 4.0.0
Ja, Sie haben ungültige JSON. Sie sind dem Aufruf von JSON.laden über eine URL-Zeichenfolge, die nicht ein JSON-Objekt. , Ungültiges JSON. JSON.laden nicht zum Lesen von Daten aus einer url-Sie sind nur auf der Durchreise zu dem string in
InformationsquelleAutor Alex Kurmaev | 2013-09-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
JSON.load
braucht eine Quelle, die eineString
oderIO
- Objekt gemäß der Dokumentationhttp://www.ruby-doc.org/stdlib-1.9.3/libdoc/json/rdoc/JSON.html#method-i-load
Sind Sie geben Sie eine Zeichenfolge, die eine URL ein, und das ist, warum Sie werden immer ein Fehler. Sie können
open-uri
zum abrufen der Daten aus der URL, die dann analysiert werden, von JSON wie so...HINWEIS
open
gibt eineStringIO
Objekt reagiert aufread
Rücksendung der JSON-Daten. JSON.laden verwandelt sich die Daten in ein hash verwendet werden.Zum Parsen der JSON-string können Sie entweder
JSON.load
oderJSON.parse
InformationsquelleAutor Leo Correa
Könnte man mit net/http-Bibliothek wie folgt:
Oder die Edelstein-http-party:
InformationsquelleAutor Junior Joanis
Standardmäßig
httparty
enthält bereits die JSON-Bibliothek in httparty.rb.Dies bedeutet, dass der Aufruf zu
require 'json'
ist unnötig.Dank für die Bereitstellung dieser Beispiele!
InformationsquelleAutor carlosplusplus
Könnte man JSON verwenden und die net/http-lib.. das ist unten:
InformationsquelleAutor Rawan-25