2010-02-04 20 views
9

Soy totalmente nuevo en JSON y podría necesitar usarlo en el futuro, así que leí un poco sobre él. Hay muchas preguntas con respecto a JSON en SO. Encontré montones de artículos usando google, leí json.org pero no entendía cómo almacenar datos JSON.¿Cómo almaceno datos JSON en un disco?

JSON es un formato liviano de intercambio de datos. Entonces, ¿cómo almaceno sus datos? En un archivo ? En una base de datos ? ¿Importa?

Puedo usarlo para pasar los datos a jsTree (jsTree es un componente de árbol de navegador cruzado basado en JavaScript. Está empaquetado como un plugin jQuery.) Sería con Wordpress. Estoy tratando de entender cómo almacenaré los datos? En un archivo? ¿Archivo de texto? En la base de datos de Wordpress? ¿Cuál es más rápido? ¿Mejor usar?

ESTADO ACTUAL antes de cualquier codificación, no hay una aplicación que se ejecuta

  • Estoy preparando los datos de origen y hasta ahora mi archivo csv fuente es 235KB de tamaño con aproximadamente 700lines (línea = nodos futuras /hojas). Utilizo el archivo csv solo para recopilar datos, luego cargaré/actualizaré la fuente de datos en el servidor web.
  • El número va a crecer digamos todas las semanas por 5-10.
  • El archivo está en mi computadora local y se almacenará (de alguna manera) en un servidor de alojamiento web. Tenga en cuenta que voy a utilizar toda la aplicación jsTree + JSON dentro de Wordpress
  • creo que puedo usar esto: Now parse Client side json with Wordpress
+1

Para los formatos de intercambio de datos, generalmente los datos ya están almacenados en la base de datos y el formato es simplemente una representación transitoria de los datos. Creo que es raro almacenar esta representación (ya sea JSON, XML, etc.). Por ejemplo, puede obtener JSON de un servicio web por parte de un tercero, pero no necesariamente almacena el JSON. –

+0

@Michael Easter: No tengo los datos almacenados hasta ahora. Estoy descubriendo cómo va a suceder. – Radek

Respuesta

25

supongo que lo primero que debe entender es que JSON es sólo una manera de representar la información. Puede almacenar los datos como prefiera. Si tiene una base de datos relacional, probablemente pueda encontrar una forma razonable de convertir los datos hacia adelante y hacia atrás.

{ 
    "id": 321 
    "name" : "Jim", 
    "age" : 27, 
    "email" : "[email protected]" 
} 

podría estar representado en XML como

<person> 
    <id>321</id> 
    <name>Jim</name> 
    <age>27</age> 
    <email>[email protected]</email> 
</person> 

O estén almacenadas en la mesa que se parece a

_______________________________________ 
| id | name | age | email    | 
======================================== 
|321 | Jim | 27 |[email protected]  | 
---------------------------------------- 

Así que si usted puede almacenar la información que le apetezca. Solo necesita alguna forma de serializar/deserializar los datos en la forma que desee.

dicho todo esto, Si necesita tienda el JSON y almacenarla como un archivo no va a funcionar, es probable que desea buscar en CouchDB o MongoDB. Son bases de datos orientadas a documentos que realmente almacenan documentos JSON. Le permitirán almacenar cualquier documento JSON que desee. Puede crear vistas y consultar los datos directamente sin tener que convertir los datos a formularios diferentes.

+1

@Steve g: ¿es una buena idea tener otra base de datos si todo va a pasar con WordPress? – Radek

4

Somethings como CouchDB son una base de datos que lo almacena internamente en un archivo. La mayoría de las personas no/store/JSON en absoluto, lo generan y lo envían, o lo analizan y procesan.

JSON es un formato ideal para la serialización de datos, pero se le aplican las mismas advertencias que cualquier otro formato de serialización. ¿Almacena XML en un DB? Usualmente no.La diferencia es que XML hace sacrificios para incluir el uso humano, y JSON hace sacrificios para ser fácil de analizar y rápido.

JSON no es realmente un reemplazo para un CSV. Piense en un CSV como un mecanismo de dumping específico de tabla sin formato. No tendría mucho sentido tener una exportación JSON en Excel.

1

El tiempo que almacene en una base de datos o en un archivo realmente no importa. El punto es que debes poder buscarlo como una cadena (usando HTTP o algún script del lado del servidor).

Por ejemplo, si lo guarda como un archivo llamado data.json puede usar ajax para buscarlo, pero si lo almacena en una base de datos, necesita usar algún tipo de servidor de scripting (aún puede usar ajax)

Si tiene alguna experiencia con xml solo piense en json como lo mismo, es solo una cadena de representación de datos.

1

JSON es un formato de intercambio. Puede almacenarlo en un archivo o en un DB si lo desea, como cualquier otro formato, aunque si esa es una buena idea depende exactamente de lo que esté haciendo.

Usted dice "Hasta ahora, mi archivo csv de origen tiene 235 KB de tamaño con aproximadamente 700 líneas (nodos/hojas)". ¿Estás considerando cambiar de CSV a JSON? (En realidad no dices.) También dices "El número va a crecer digamos cada semana por 5-10". Ni CSV ni JSON son realmente óptimos para archivos grandes que tendrán cambios incrementales aplicados, excepto que con CSV puede anexar datos de manera eficiente. Si agregar es todo lo que está haciendo, podría quedarse con CSV, pero si necesita hacer otras modificaciones, probablemente descomponga los datos en un DB para que las actualizaciones se puedan hacer de manera eficiente.

En realidad, la cantidad de datos de la que está hablando es muy pequeña, y con un número tan pequeño de actualizaciones por semana, probablemente no tenga que preocuparse por la eficiencia. Haz lo que quieras. :-)

+0

@Laurence Gonsalves: Pensé que 235KB html sería demasiado grande. Entonces podría necesitar usar algo más. – Radek

+0

@Laurence: cuando se trata de cambios incrementales, estoy pensando en un diseño para almacenar datos incrementales en diferentes archivos y aplicar cierta lógica para identificar qué archivo consultar o consulta agregada !!! Por ejemplo :(1) una página que muestra una tabla de datos con pagenation. En lugar de almacenar todos estos datos en uno .json, los almacenaré en 10 archivos .json. (2) una página web que muestra el informe de población por país está tomando datos de un archivo .json . Almacenaré los datos incrementales en otro archivo > .json. Mientras genero el informe, agregaré información. ¿Cuáles son sus pensamientos? – Gana

+0

@ user2504156 que parece necesitar una pregunta propia. Los comentarios son demasiado apretados para que entienda lo que está describiendo, o para que pueda proporcionar cualquier pensamiento significativo. Me pregunto por qué está almacenando JSON en lugar de almacenarlo en un DB, y luego simplemente usa JSON para transportarlo al cliente. –

Cuestiones relacionadas