La respuesta de Glenn Anderson cubre bastante bien las principales diferencias. Ambas son formas de datos estructurados. La principal diferencia es que CSV es plano, mientras que JSON es jerárquico. Como dijo, un CSV contiene muchos registros idénticos, mientras que un archivo JSON puede contener datos estructurados muy arbitrarios.
En cuanto al análisis, Glenn Anderson no dijo mucho, así que eso es lo que responderé.
Análisis CSV
- ¿Cuál es tu problema de programación dinámica favorito?
- En este algoritmo de clasificación de radix, ¿qué representa cada variable? (Java)
- Cómo verificar en C ++ si varias cadenas tienen una coincidencia con una sola cadena de una sola vez
- ¿Cuál es el algoritmo más corto para probar si dos cadenas son anagramas?
- Cómo resolver esta cuestión de las fuerzas
Debido a la naturaleza simple de un archivo CSV, es mucho más fácil de analizar, de hecho, en el caso general, una división simple en coma dividirá un registro en columnas. El CSV es esencialmente una matriz de matrices o una matriz de hashs dependiendo de cómo se mire. Cada línea es una fila en la matriz primaria independientemente. Cada coma en una fila designa el final de un elemento en la matriz interna. Alternativamente, usando una fila de encabezado, a cada columna se le puede asignar un nombre y las columnas integradas en un hash para que tenga la matriz de hashs. Si bien la división simple funcionará para el caso simple, la verdad es que el análisis es un poco más complicado, ya que algunas columnas pueden contener una coma interna y, como tal, deben citarse. Esta cita introduce la necesidad de citar las citas y así sucesivamente, por lo que el uso de un analizador CSV es generalmente una buena idea, aunque no es difícil de construir desde cero.
En general, el análisis CSV es solo un algoritmo simple de recorrer las líneas del archivo.
JSON Parsing
JSON
La estructura JSON es mucho más flexible que CSV y, por lo tanto, mucho más complicada de analizar. Cada elemento puede contener subelementos infinitamente. JSON define varios tipos diferentes también. Los valores pueden ser cadena, número, verdadero, falso, nulo, objeto o matriz. Las matrices contienen 0 o más elementos de valor. Los objetos contienen pares de valores clave, donde la clave es una cadena y el valor como se definió anteriormente.
Debido a la naturaleza cíclica de la estructura de un documento JSON, es necesario mantener el estado mientras analiza. Debe saber dónde se encuentra en la jerarquía para adjuntar el siguiente valor en la ubicación adecuada. La naturaleza cíclica se presta bien para usar funciones recursivas. La pila mantiene su estado y cada iteración solo mira el nivel actual dentro de la jerarquía general. Si bien los documentos jerárquicos se pueden analizar sin recurrencia, el código recursivo es mucho más fácil de leer en este caso. Sin recurrencia, la cantidad de estado que se requiere se vuelve muy difícil de mantener. Sin recurrencia, necesitará usar algún tipo de cola / lista para mantener su orden en el documento mayor.
A menos que su tarea sea escribir un analizador JSON, siempre debe usar una biblioteca para analizar JSON.