simdjson_decode Decodifica una cadena JSON &reftitle.description; mixedsimdjson_decode stringjson boolassociative&false; intdepth512 Toma una cadena codificada en JSON y la convierte en un valor PHP. Esto utiliza una Instrucción Simultánea más Rápida, Datos Múltiples (Simultaneous Instruction, Multiple Data - SIMD) que json_decode cuando es soportada por la arquitectura del ordenador. &reftitle.parameters; json El string json a decodificar. Esta función solo funciona con cadenas codificadas en UTF-8. Esta función analiza las entradas válidas que json_decode puede decodificar, siempre que sean inferiores a 4 Go de longitud. associative Cuando &true;, los objetos JSON serán devueltos como &array; asociativos; cuando sean &false;, los objetos JSON serán devueltos como &object;s. depth La profundidad máxima de la estructura a decodificar. El valor debe ser superior a 0, e inferior o igual a 2147483647. Aquellos que llamen a esta función deberían utilizar valores razonablemente pequeños, ya que profundidades mayores requieren más espacio de búfer y aumentarán la profundidad de recursión, a diferencia de la implementación actual de json_decode. &reftitle.returnvalues; Devuelve el valor codificado en json en el tipo PHP apropiado. Los valores true, false y null son devueltos respectivamente como &true;, &false; y &null;. &reftitle.errors; Si json es inválido, una SimdJsonException es lanzada a partir de PECL simdjson 2.1.0, mientras que anteriormente, una RuntimeException era lanzada. Si depth está fuera del rango permitido, una SimdJsonValueError es lanzada a partir de PECL simdjson 3.0.0, mientras que anteriormente, un error de nivel E_WARNING era lanzado. &reftitle.examples; Ejemplos de <function>simdjson_decode</function> ]]> &example.outputs; int(1) ["b"]=> int(2) ["c"]=> int(3) } array(3) { ["a"]=> int(1) ["b"]=> int(2) ["c"]=> int(3) } ]]> Acceder a propiedades de objeto no válidas Acceder a elementos en un objeto que contienen caracteres no permitidos por la convención de nomenclatura de PHP (por ejemplo, el guion) puede ser logrado encapsulando el nombre del elemento entre llaves y comillas. {'foo-bar'}; // 12345 ?> ]]> Errores comunes al usar <function>simdjson_decode</function> ]]> Errores de <parameter>depth</parameter> array -> array -> string) $json = json_encode( [ 1 => [ 'English' => [ 'One', 'January' ], 'French' => [ 'Une', 'Janvier' ] ] ] ); // Mostrar errores para diferentes profundidades. var_dump(simdjson_decode($json, true, 4)); try { var_dump(simdjson_decode($json, true, 3)); } catch (SimdJsonException $e) { echo "Capturado: ", $e->getMessage(), "\n"; } ?> ]]> &example.outputs; array(2) { ["English"]=> array(2) { [0]=> string(3) "One" [1]=> string(7) "January" } ["French"]=> array(2) { [0]=> string(3) "Une" [1]=> string(7) "Janvier" } } } Capturado: El documento JSON era demasiado profundo (demasiados objetos y arrays anidados) ]]> <function>simdjson_decode</function> de grandes enteros ]]> &example.outputs; float(1.2345678901235E+19) } ]]> &reftitle.notes; La especificación JSON no es JavaScript, sino un subconjunto de JavaScript. En el caso de que la decodificación falle, una SimdJsonException es lanzada y SimdJsonException::getCode y SimdJsonException::getMessage pueden ser utilizados para determinar la naturaleza exacta del error. &reftitle.seealso; json_encode json_decode