Cómo trabajar con grandes archivos JSON usando PHP

Cómo trabajar con grandes archivos JSON usando PHP

Cómo hacer para...
Recorrer un archivo json es algo sencillo, ¿cierto? Pues parece que cuando el tamaño del archivo es grande las cosas ya no son tan simples... Lo que se haría típicamente sería algo similar a: <?php $json = json_decode( file_get_contents( $argv[1] ), true ); print_r( $json ); El problema aquí es que se requiere primero leer todo el archivo para, recién entonces empezar a procesar... Tomemos un ejemplo como el árbol de categorías de MercadoLibre Brasil. Este archivo pesa 229 MB (Una vez descomprimido). 229 MB de puro json... es bastante, sí, pero... ¿es mucho? La respuesta en definitiva depende la configuración que tengas en tu php.ini. A efectos de este análisis hice un cambio al mío de modo que quede así: ; Maximum amount of memory a script may consume (128MB)…
Leer más
Cómo pasar datos JSON a CSV usando PHP

Cómo pasar datos JSON a CSV usando PHP

Cómo hacer para...
La pregunta que dió origen a este post era un poco más amplia: Pero como ya hablé de cómo consumir webservices (Sean REST o SOAP) me voy a concentrar en la parte que me llamó la atención: cómo pasar de JSON a CSV. Aclaremos los tantos antes de ir a los detalles: Qué es JSON JSON significa JavaScript Object Notation, es decir: notación de objetos de JavaScript. Está más allá del alcance de este artículo (y de este blog en general) hablar de las bondades (o falta de ellas) de JavaScript... hay mucho material muy bueno al respecto. El punto es que, más allá de lo que a vos te guste o no, JavaScript tiene una sintaxis muy práctica para describir los objetos: todo lo que esté encerrado entre {} es…
Leer más
Cómo iterar sobre un jSON usando php

Cómo iterar sobre un jSON usando php

Cómo hacer para...
La forma más sencilla de iterar sobre un jSON usando php es convertirlo a un array. Simplemente se trata de usar la función json_decode pasándole como parámetro el string jSON que querés recorrer y true (para que el resultado sea devuelto como un arreglo asociativo). Una vez que el jSON está transformado a array se puede iterar sobre él como lo harías con cualquier otro array php, usando un foreach o alguna otra estructura. Por ejemplo, si tuvieses en la variable $json el siguiente texto: { "rojo":"#f00", "verde":"#0f0", "azul":"#00f", "cyan":"#0ff", "magenta":"#f0f", "amarillo":"#ff0", "negro":"#000" } Para recorrerlo desde php harías algo como: $array = json_decode( $json ); foreach ( $array as $nombre => $hexa ) { echo $nombre.'='.$hexa; } Y la salida que obtendrías sería: rojo = #f00 verde = #0f0…
Leer más