JSON-Objekt nur für einen integer
Dumme Frage, aber ich bin nicht in der Lage, um herauszufinden,..
Habe ich versucht, das folgende in Ruby:
irb(main):020:0> JSON.load('[1,2,3]').class
=> Array
Diese scheint zu funktionieren. Während weder
JSON.load('1').class
noch diese
JSON.load('{1}').class
funktioniert. Irgendwelche Ideen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich fragte die Jungs, wer programmiert die Bibliothek. AFAIK
1
ist nicht ein gültiges JSON-Objekt, und weder ist{1}
aber1
ist das, was die Bibliothek selbst erzeugt für den fixnum 1.Würden Sie tun müssen:
{"number" : 1}
gültig json. Der Fehler ist, dass==
unterschiedlich sind, ist es kann vergleichen Sie Referenzen (Objekt.== es tut), aber es ist in der Regel außer Kraft gesetzt zu bieten sematic-Vergleich. Ruby hat .gleich? um zu überprüfen, für identische Objekte.JSON-text = object / array
Ich würde sagen, es ist ein bug:
Ich nehme an, du bist mit dieser: (http://json.rubyforge.org/)
JSON nur unterstützende Objekte, ist einfach nicht wahr -- json.org auch nicht schlagen, imo. es wurde abgeleitet von der javascript-und damit vor allem strings und zahlen sind auch gültige JSON:
ActiveSupport::JSON
richtig versteht, raw-Wert JSON:tut MultiJson:
so, als a2800276 erwähnt, das muss ein Fehler sein.
aber wie diese schreiben, ruby 2 ist JSON hat
quirks_mode
standardmäßig aktiviert bei der Verwendung derload
Methode.Das erste Beispiel ist gültig. Die zweiten zwei sind nicht gültig JSON-Daten. gehen Sie zu json.org für details.
Wie gesagt nur arrays und Objekte sind erlaubt auf der obersten Ebene des JSON-Format.
Vielleicht wickeln Sie Ihre Werte in einem array wird Ihr problem lösen.
Von den Grundlagen, was ist JSON:
Referenz finden Sie eine vollständige Liste von Json-Datentypen
Sie müssen in dem richtigen format, also 'key' : 'value' - pair-Mädchen.