Foros del Web » Programando para Internet » PHP »

Convertir array a json en php

Estas en el tema de Convertir array a json en php en el foro de PHP en Foros del Web. Hola comunidad. Escribo pues tengo cierto problema a la hora de convertir un array a json. Resulta que en php existe la funcion json_encode(), pero ...
  #1 (permalink)  
Antiguo 07/04/2011, 07:32
 
Fecha de Ingreso: febrero-2011
Ubicación: Cuba
Mensajes: 11
Antigüedad: 13 años, 2 meses
Puntos: 0
Pregunta Convertir array a json en php

Hola comunidad.

Escribo pues tengo cierto problema a la hora de convertir un array a json. Resulta que en php existe la funcion json_encode(), pero realmente no me resuelve el problema que tengo, ya que me hace falta para utilizarlo en Ext-JS el el formato no son iguales. Les pongo un ejemplo para que entiendan mejor:

Aqui tengo el codigo php donde utilizo la funcion json_encode:

<?php
include 'pgsql_conn.php';
$conn = new connection();

$query = "select id_rol, name_rol from roles";
$result = $conn->myquery($query);
$arr = array();

$row = pg_num_rows($result);
if($row > 0){
while($row = pg_fetch_object($result)){
$arr[] = $row;
}
echo '{success:true,row:'.json_encode($arr).'}';
}
?>

Esto el lo que me devuleve la funcion json_encode()

row:[{"id_rol":"1","name_rol":"programador "},{"id_rol":"2","name_rol":"analista "},{"id_rol":"3","name_rol":"disennador "},{"id_rol":"4","name_rol":"jefe_proyecto "},{"id_rol":"5","name_rol":"probador "},{"id_rol":"6","name_rol":"otro_rol "},{"id_rol":"7","name_rol":"pepe "}]

Ahora mi problema radica en que Ext-JS usa comillas simples en ves de comillas dobles.

Como hago para cambiar esto. Ahi radica mi problema.

Saludos a todos.
  #2 (permalink)  
Antiguo 07/04/2011, 07:42
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Convertir array a json en php

Podrías usar str_replace para cambiar todas las comillas dobles a simple.
Código PHP:
Ver original
  1. str_replace('"', "'", json_encode($arr));
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 07/04/2011, 08:36
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola, Rexar

Muevo tu tema al foro de PHP desde Javascript.

Saludos,
  #4 (permalink)  
Antiguo 07/04/2011, 08:39
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Convertir array a json en php

creo que estas muy equivocado Rexar, pues se supone que JSON es la notación de objetos natural de Javascript, y funciona con comillas dobles o sencillas, siempre y cuando esté bien escrito el JSON...

quizá tu forma de tratar el JSON es simplemente la incorrecta:
Código PHP:
$out = array('success' => true'row' => $arr);
echo 
json_encode($out); 
¿o tienes el enlace de Ext-JS donde se afirma lo que nos dices?

además piensa, ¿porque json_encode() debería ser incompatible con el JSON estándar?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 09/04/2011, 08:12
 
Fecha de Ingreso: febrero-2011
Ubicación: Cuba
Mensajes: 11
Antigüedad: 13 años, 2 meses
Puntos: 0
De acuerdo Respuesta: Convertir array a json en php

Hola de nuevo. Primeramente gracias por responder y disculpen mi falta de conocimiento. Estuve revisando bien lo que me devuelve la función json_encode y quizás el problema sea este.

Miren aquí:

{"success":true,"0":[{"id_rol":"1","name_rol":"programador "},{"id_rol":"2","name_rol":"analista "},{"id_rol":"3","name_rol":"disennador "},{"id_rol":"4","name_rol":"jefe_proyecto "},{"id_rol":"5","name_rol":"probador "},{"id_rol":"6","name_rol":"otro_rol "},{"id_rol":"7","name_rol":"pepe "}]}

Fíjense en los espacios que existentes entre el valor del atributo name_rol y las comillas dobles. Me pregunto si ese puede ser el problema.

Gracias de nuevo
  #6 (permalink)  
Antiguo 09/04/2011, 10:22
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Convertir array a json en php

esos no son espacios, son saltos de linea...

y si, entonces si son ellos los que rompen el JSON... intenta usando trim() sobre las variables que contienen dicho salto de linea antes de generar el JSON...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: javascript, json
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:41.