2011-01-31 8 views
5

Estoy usando el org.json.JSONObject para analizar un json enviado a mi servlet por un iphone. Estuve estancado por un tiempo por el cual recibiría un mensaje de error. El mensaje de error fue:org.json.JSONException: cadena sin terminar en 737 [carácter 738 línea 1]

org.json.JSONException: Cadena sin terminar en 737 [738 caracteres línea 1]

Después de imprimir lo que he recibido, veo que la cadena enviada fue de hecho interrumpida y se detuvo a medio json. No puedo entender por qué sería acortado. No hay límite para el tamaño de cadena (o al menos solo un límite de memoria).

¿Alguien más ha cometido un error?

Saludos

Joe

+0

¿Has confirmado que estás ENVIANDO la secuencia correcta? – willcodejavaforfood

+0

¿Cómo lo envía? POST o GET? – lxt

Respuesta

8

trabajo JSON bien con \ n pero si tiene alguna otra charachters especiales en su meesage como \, @, &, etc .. # primero convertirlos en su respectivo valor HEX y luego enviar su mensaje.

+0

\ n también debe escaparse según apunta Haris. – Judy

+0

¿Puedes dar un ejemplo? – LoveToCode

2

Si está utilizando el método GET HTTP para enviar datos utilizando los parámetros de consulta, se da cuenta de que hay un límite práctico en la cantidad de datos que puede enviar esa manera. Se trata de unos 2000 caracteres (varía según el servidor y el cliente). Puede superarlo fácilmente cuando la URL codifica una cadena más corta.

+1

Gracias Eric y los demás por sus respuestas. La respuesta que encontré al final fue que JSONObject se estaba quedando atascado en un personaje comercial. Gran diversión. – Joe

2

Json no funcionará si la cadena recibida contiene un nuevo carácter de línea como \ n. Intenta verificarlo y escapar del personaje.

Cuestiones relacionadas