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

Porque estoy obteniendo un 406 al esperar JSON.¿Es este JSON válido?

Se está generando a través de Jersey, a la que se le informa que un método @Produce JSON. Está siendo recibido por un Dojo xhrGet que tiene JSON configurado como su handleAs.

EDITAR - Para aclarar, no estoy interesado en el código donde evalúo ni nada de eso. La pregunta fue muy simple: ¿es JSON válido?

+0

comparte el código donde lo evalúas. –

+0

Es válido JSON. – Nosredna

Respuesta

14

Lo es, pero tiene los elementos booleanos (mode) y numéricos (number) como cadenas. No debería ser:

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

Gracias, analizaremos esto. – mtrc

1

Si desea utilizar los números directamente, no debe ponerlos entre comillas. Es JSON válido, pero lo más probable es que lo que usted quiere hacer es:

{ "algo": 1, "modo": "true", "número": 1234}

es necesario agregar más información si quieres mejores respuestas

EDITAR: Eh ... y sí, el booleano no se debe citar tampoco, a menos que desee para convertirlo usted mismo, por alguna razón.

7

Es JSON válido si todos los valores del diccionario son Cadenas. Esto también es JSON válida:

{ "algo": 1, "modo": true, "número": 1234}

Por lo general, sin embargo, un error 406 ocurre cuando se pide un tipo de respuesta (tales como html o json) y el servidor no puede enviarlo de ese tipo. ¿Por qué crees que la entrada no es válida?

0
  • sí, esto es JSON válida
  • aunque si usted está pensando en dar salida a esto como el resultado de una petición HTTP, que necesita para escapar de todas las cotizaciones

$ cadena = " {\ "algo \": \ "1 \", \ "modo \": \ "verdadero \", \ "número \": \ "1234 \"} "; echo $ str