2011-03-09 186 views
5

mi información JSON vuelve entre corchetes, por ejemplo: [{"cust_id":"109"}]. ¿Porqué es eso? He intentado mysql_fetch_row y mysql_fetch_object. ¿Necesito subserver para eliminar los corchetes?Los datos de JSON están entre corchetes ¿Por qué?

Además, ¿cómo puedo visualizar un objeto JSON en javaScript? En Firebug, si codigo los datos de JSON , veo un valor como JSON, pero alert() no lo mostrará.

Gracias.

$rows = array(); 
    while($r = mysql_fetch_assoc($rs)) { 
    $rows[] = $r; 
    } 
    echo json_encode($rows); 
+1

http://json.org/ –

Respuesta

5

Eso significa una matriz que consta de un elemento.

+3

Para expandir, si tuviera varios elementos, se vería algo como esto: '[{" cust_id ":" 109 "}, {" cust_id " : "110"}, {"cust_id": "111"}] ' –

+1

ayudaría a hacer referencia a los estándares http://json.org. –

+0

¿Esto significa que debo subscribir los corchetes para que mydata devuelto a mi javaScript esté delimitado por {...}? y ¿por qué json_encode delimita su salida con corchetes si las llaves delimitan un objeto? ¿O me falta algo? – hadenp

4

Los paréntesis indican una matriz en JavaScript. Si sólo desea un elemento que tiene que codificar la primera (y única) de entrada de la matriz en concreto:

$rows = array(); 
while($r = mysql_fetch_assoc($rs)) 
{ 
    $rows[] = $r; 
} 
echo json_encode($rows[0]); 
+0

Gracias. ¿Cómo puedo imprimir los datos en mi página? – hadenp

+0

No entiendo lo que quiere hacer. echo json_encode (...) ya genera los datos JSON en la página. – Daff

+0

Pero cuando trato de mostrar los datos devueltos por la página que contiene Javascript, (jQuery) No veo nada ... $ .ajax ({ \t \t tipo: "POST", \t \t url: "call_ajax_query. php", \t \t datos: {suite_no: Suite}, \t \t tipoDatos: 'json', \t \t éxito: function (datos) { \t \t $ ('# salida') html (datos); . \t \t \t \tAlerta("Datos:" + datos); \t \t} \t \t}); – hadenp

Cuestiones relacionadas