2009-06-03 17 views
5
{"something":"1","mode":"true","number":"1234"} 

Weil ich eine 406 auf JSON erwarte.Ist dies ein gültiger JSON?

Es wird über Jersey generiert, dass eine Methode @Products JSON erzählt wird. Es wird von einem Dojo xhrGet empfangen, für das JSON als handleAs festgelegt ist.

EDIT - Um zu verdeutlichen, bin ich nicht in den Code interessiert, wo ich evaluiere oder ähnliches. Die Frage war sehr einfach - ist es JSON gültig?

+0

teilen Sie den Code, wo Sie es auswerten. –

+0

Es ist gültiger JSON. – Nosredna

Antwort

14

Es ist, aber Sie haben die boolesche (mode) und numerische (number) Elemente als Strings. Sollte es nicht sein:

{"something":"1","mode":true,"number":1234} 
+0

Danke, schau dir das an. – mtrc

1

Wenn Sie die Zahlen direkt verwenden möchten, sollten Sie sie nicht in Anführungszeichen setzen. Es ist gültig JSON, aber die Chancen sind, dass, was Sie wollen zu tun ist:

{ „etwas“: 1, „Modus“: „true“, „Nummer“: 1234}

Sie brauchen mehr hinzufügen Informationen, wenn Sie bessere Antworten wünschen.

EDIT: Eh ... und ja, die Boolean sollte auch nicht zitiert werden, es sei denn Sie wollen, um es selbst zu konvertieren, aus irgendeinem Grund.

7

Es ist gültig JSON, wenn alle Werte des Wörterbuchs Strings sind. Dies gilt auch JSON:

{ "etwas": 1, "Mode": true, "number": 1234}

Üblicherweise wird jedoch ein 406-Fehler tritt auf, wenn Sie einen Antworttyp fragen (wie als html oder json) und der Server kann es nicht in diesem Typ senden. Warum glauben Sie, dass die Eingabe ungültig ist?

0
  • ja ist diese gültig JSON
  • obwohl, wenn Sie auf die Ausgabe dies als Ergebnis einer HTTP-Anforderung planen, müssen Sie alle Zitate

$ str zu entkommen = " {\ "irgendwas \": \ "1 \", \ "Modus \": "wahr", \ "Nummer \": \ "1234 \"} "; echo $ str

6

Ich benutze ein einfaches Kopieren/Einfügen-Tool namens JASONLint (http://www.jsonlint.com/), um meine Berge von JSON zu testen. Du kannst es graben.

Verwandte Themen