¿Debo usar JSON solo para usar JSON?

11

Estoy construyendo un sitio de blogs para el aprendizaje, con un back-end PHP / MySQl. Todas las entradas del usuario se manejan con formularios enviados en solicitudes POST.

¿Usar JSON de alguna manera lo hará más limpio o más fácil de mantener o agregar características? ¿O solo estoy agregando un formato de intercambio sin ninguna razón?

Entonces, ¿qué funcionalidad se implementaría mejor utilizando JSON?

JonOsterman
fuente
44
Cual es la alternativa? ¿Inventando su propio formato de datos?
@delnan: Yaml, CSV. Probablemente podría pensar en algunos otros.
Robert Harvey
10
Rara vez se está usando bla por el simple hecho de usar bla. Mire las cosas para las que JSON es bueno y luego considere si vale la pena usar JSON para esos aspectos específicos.
whatsisname
@RobertHarvey: O, formularios HTTP estándar.
cHao
77
I'm building a blogging site for learning- ¿Estás aprendiendo las tecnologías asociadas? o para proporcionar material para otros? Si es lo primero, absolutamente - use json por el simple hecho de usarlo para que aprenda a usarlo. Ponte a prueba con las nuevas tecnologías; de lo contrario, no aprenderás cómo usarlas.

Respuestas:

15

JSON tiene algunas ventajas:

  • Es un formato estructurado, que puede validarse y analizarse con herramientas maduras existentes.
  • Puede hablar fácilmente con JavaScript, lo que lo hace muy útil para la comunicación AJAX.
  • Es extremadamente simple y liviano. Para cualquier cosa que desee utilizar el intercambio de datos XML, JSON es generalmente una mejor alternativa.

Mi regla de oro es que si solo necesita devolver un único elemento semántico de una llamada, envíelo como texto sin formato. Pero si necesita devolver varias piezas de información, use JSON.

Mason Wheeler
fuente
66
en el que habla con JS parte no vuelvas a usar eval para obtener el valor de la misma en lugar de utilizar JSON.parse disponibles en la mayoría de los navegadores
monstruo de trinquete
1
Se habla fácilmente a PHP, así, ya json_decode()y json_encode()convertido entre una cadena JSON y el nativo de Array()estructura de datos
Izkata
@Izkata solo si su servidor tiene esas funciones.
Darth Egregious
Excepto en el caso de envío de formularios, el uso de JSON rompe los estándares . ¿Por qué arreglar lo que no está roto?
Brendan Long
2
@BrendanLong: Ese estándar no dice nada sobre usar o no usar JSON. Obviamente, si está enviando un formulario, debe codificar todos los datos de acuerdo con el estándar HTTP. Pero si uno de los elementos de formulario que está enviando es un elemento complejo que contiene múltiples elementos semánticos, poner ese elemento en formato JSON (que luego se codifica correctamente por su biblioteca HTTP) es una buena manera de hacerlo.
Mason Wheeler
5

Para lo que describe, parece una plataforma de blogs donde todo se envía a través de formularios, no, no necesita convertirlo todo a JSON. PHP maneja formularios a la perfección para usted. No hay razón para introducir una nueva complicación en esa situación.

Nuevamente, en su circunstancia específica , JSON podría ser algo que usaría si necesitara enviar datos semiestructurados al navegador web. En el lado del navegador, el JSON sería muy fácil de analizar en javascript.

Gran maestro B
fuente
2

JSON solo es útil si tiene la intención de crear un sitio pesado de JavaScript que use solicitudes de Ajax para pasar datos al servidor / obtener datos para mostrar sin realizar una devolución de datos completa. Si no tiene intención de hacer uso de esa funcionalidad, usar JSON es simplemente envolver su código en otra capa que debe ser serializada / deserializada para hacer algo útil.

Ryathal
fuente
1

No creo que la implementación de JSON mejore inherentemente su sitio tal como está. JSON es la notación de objetos de JavaScript; así que a menos que esté empezando a aprender JavaScript también, no veo un valor inherente en asegurarme de que todo esté en JSON.

Honus Wagner
fuente
No necesita aprender JavaScript para usar / abusar de JSON. Es independiente del idioma.
CokoBWare
0

Si bien JSON es muy extensible y bien estructurado, no es el más rápido.

JSON es excelente para enviar datos del servidor a los clientes, ya que resuelve problemas con la codificación.

Pero en el servidor, necesita un rendimiento máximo y un consumo mínimo de espacio en disco. Por lo tanto, para las tablas, debe usar columnas MySQL, y para las no tablas se prefiere un formato binario.

Para resolver problemas de extensibilidad con archivos binarios, puede etiquetar sus estructuras con un código de 4 caracteres para el nombre de la estructura y un número de 1-2 bytes para la versión.

Triang3l
fuente
66
JSON es un formato de datos, no una base de datos.
Robert Harvey
Sí, pero se puede usar para almacenar matrices.
Triang3l