recorrer objeto mostrar leer externo ejemplos ejemplo datos crear convertir con javascript php json http

objeto - recorrer json javascript



Encabezado de tipo de contenido HTTP y JSON (3)

Ok, siempre he tratado de evitar el uso de la mayoría de las propiedades del protocolo HTTP o, por mucho que me llame, por miedo a lo desconocido. Sin embargo, me dije a mí mismo que voy a enfrentar el miedo hoy y comenzar a usar encabezados a propósito. Lo que he estado tratando de lograr aquí es enviar datos json al navegador y usarlos de inmediato. Por ejemplo, si tengo una función de controlador ajax en el estado listo 4 que se parece a

function ajaxHandler(response){ alert(response.text); }

y he configurado el encabezado content-type en mi php

header(''Content-Type: application/json''); echo json_encode(array(''text'' => ''omrele''));

Mi pregunta es: ¿por qué no puedo acceder directamente a la propiedad desde la función del controlador, cuando se le dice claramente al navegador que los datos entrantes son application/json ?


El encabezado Content-Type simplemente se usa como información para su aplicación. Al navegador no le importa de qué se trata. El navegador simplemente le devuelve los datos de la llamada AJAX. Si desea analizarlo como JSON, debe hacerlo por su cuenta.

El encabezado está allí para que su aplicación pueda detectar qué datos se devolvieron y cómo debería manejarlos. Necesitas mirar el encabezado, y si es application/json entonces analizarlo como JSON.

Así es como funciona jQuery. Si no le dice qué hacer con el resultado, usa Content-Type para detectar qué hacer con él.


El siguiente código me ayuda a devolver un objeto json para js en FronEnd

Mi plantilla code template_file.json

{ "name": "{{name}}" }

código respaldado por python

def download_json(request): print("Downloading json") #response render a template as json object return HttpResponse(render_to_response("template_file.json",dict(name="Alex Vera")),content_type="application/json")

url.py

url(r''^download_as_json/$'',views.download_json,name=''download_json-url'')

Código de Jquery para FrontEnd

$.ajax({ url:''{% url ''download_json-url'' %}'' }).done(function(data){ console.log(''json '',data); console.log(''Name'',data.name); alert(''hello ''+data.name); });


Content-Type: application/json es solo el encabezado del contenido, el encabezado del contenido es solo información sobre el tipo de datos devueltos, por ejemplo, JSON, image (png, jpg, etc.), html. Tenga en cuenta que JSON en javascript es una matriz u objeto. si desea ver todos los datos, use console.log en lugar de alerta

alert(response.text);//will alert "[object Object]" string console.log(response.text);//will logging all data object

si desea alertar a JSON original como cadena, entonces agregue comillas simples (''):

echo "''" . json_encode(array(''text'' => ''omrele'')) . "''"; //alert(response.text) will alert {"text":"omrele"}

No use comillas dobles, confundirá javascript, porque JSON usa comillas dobles para cada valor y clave:

echo ''<script>var returndata=''; echo ''"'' . json_encode(array(''text'' => ''omrele'')) . ''"''; echo '';</script>''; //it will return wrong javascript code: <script>var returndata="{"text":"omrele"}";</script>