problema con json_decode
Publicado por mateo (2 intervenciones) el 19/02/2019 17:17:36
Buenos dias para todos,
Tengo un archivo json que necesito decodificar para manipularlo en php, el problema es que algunos datos o palabras contienen acentos y cuando intento hacer el json_decode($json) retorna null.
La solución que he podido encontrar aunque no creo que se la correcta para esta situación es emplear un preg_replace() que básicamente elimina estos caracteres y luego hacer el json_decode().
Estoy desesperado con el tema y quisiera que alguno de esta comunidad me ayudara.
Este es el contenido del json, se supone que debería estar en un archivo dentro del programa(para entendimiento del código)
Así funciona eliminando las tildes:
Lo que pretendo es que pueda tener el mismo json con tildes y acentos.
Agradezco su pronta ayuda.
Tengo un archivo json que necesito decodificar para manipularlo en php, el problema es que algunos datos o palabras contienen acentos y cuando intento hacer el json_decode($json) retorna null.
La solución que he podido encontrar aunque no creo que se la correcta para esta situación es emplear un preg_replace() que básicamente elimina estos caracteres y luego hacer el json_decode().
Estoy desesperado con el tema y quisiera que alguno de esta comunidad me ayudara.
Este es el contenido del json, se supone que debería estar en un archivo dentro del programa(para entendimiento del código)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
{
"usuarios": [
{
"id_personaFamiliar": 20237,
"correo": "prueba@prueba.org.co",
"password": "prueba",
"nombres_apellidos": "DARIO ORTIZ LOPERA",
"operacion": "insert"
}
],
"familiares": [
{
"id_persona": 38841,
"fecha_nacimiento": null,
"ubicacion": "GALERÍA SAN MARCOS 34 (OCCIDENTE) - CÓDIGO 34 2002",
"id_personaFamiliar": 20237,
"nombres_apellidos": "MARIA LOPERA ORTIZ",
"operacion": "insert"
}
]
}
Así funciona eliminando las tildes:
1
2
3
$data = file_get_contents($path);
$json = json_decode(preg_replace('/[\x00-\x1F\x80-\xFF]/', '', $data), true);
print_r ($json);
Lo que pretendo es que pueda tener el mismo json con tildes y acentos.
Agradezco su pronta ayuda.
Valora esta pregunta


0