> Faqs > ¿Un JSON puede devolver directamente una cadena?

¿Un JSON puede devolver directamente una cadena?

Estoy devolviendo un JSON de un valor simple que quiero enviar al cliente, que lo consulta por Ajax.

El valor de devolución es simple, una única cadena de texto... tal cual.

Mi pregunta es ¿Puedo colocar en un JSON directamente una cadena de texto? ella sola, simplemente la cadena de texto que quiero devolver.

Respuestas

No puedes, un JSON puede ser una de estas dos cosas:

  • Un objeto, con propiedades y valores.
  • Un array, con un conjunto de valores.

Por lo tanto no puedes enviar una cadena de texto tal cual, porque no sería un JSON válido.

Si es solamente una cadena de texto la verdad es que puedes devolver el texto y punto, y al recibirlo no intentar convertirlo en un JSON, sino trabajar con el texto tal como te llega.

En el caso que tengas que enviarlo como JSON, por hacerlo más estándar y porque los sistemas que lo reciban esperen siempre recibir un JSON, que es generalmente lo más habitual, entonces tendrías que meter esa cadena en la estructura de un objeto o un array.

El objeto tendría propiedades con sus valores y el array podría tener un único valor, por ejemplo la cadena. No obstante, por claridad yo usaría un objeto siempre, así creo que resulta más claro para los sistemas que lo van a recibir. Además el objeto es extensible con cualquier otro dato que más adelante se necesite enviar.

Tu objeto JSON podría ser algo como esto:

{
    "response": "Aquí la cadena que quieres devolver"
}

En realidad es cierto que la envoltura de tu cadena en un objeto podría ser un poco innecesaria si solamente quieres hacer llegar la cadena, pero es lo que tendrías que hacer para que la respuesta sea un JSON válido.

Borja
307 6 24 16
Muy útil muchas gracias! imaginaba que la solución sería algo así.