Comunidad de diseño web y desarrollo en internet online

Error en JSON + Javascript + YouTube

Citar            
MensajeEscrito el 12 Jun 2012 05:53 pm
Buenas a todos, estoy teniendo problemas para leer JSON con Javascript y espero me puedan ayudar.

Estoy creando la web de mi banda de rock, hay un vídeo que colgamos en YouTube hace un par de semanas y lo que quiero hacer es poner en la web los comentarios que recibió ese vídeo, para ello obtengo el feed de comentarios en formato JSON desde la siguiente dirección:

http://gdata.youtube.com/feeds/api/videos/3VqIoHTOIgY/comments?alt=json-in-script&format=5

Realizando pruebas logre incluir correctamente los comentarios dentro del HTML de mi web pero lo que no logro es obtener el usuario que publico ese comentario. Para que se entienda mas donde esta el problema separe la funcion que obtiene ambos datos en dos, la primera recupera todos los comentarios y la segunda los username.

A continuación detallo mi código.

Esta es una versión resumida del JSON que genera YouTube:

Código :

"feed":{
        "entry":[{
                  "content":{
                             "$t":"Muy bueno chicos!",
                             "type":"text"
                                  },
                   "author":[{
                              "name":{
                                      "$t":"MPaulitaK"
                                     },
                               "uri":{
                                      "$t":"http://gdata.youtube.com/feeds/api/users/MPaulitaK"
                                     }
                            }]
                }]
}


Mi Código HTML:

Código :

<html>
<head>
    <title>Prueba</title>
    <script type="text/javascript" src="funciones_json.js"></script>
</head>

<body>
    <h2 id="complete">Comentarios</h2>
    <div id="comentarios"></div>
    <script type="text/javascript" src="http://gdata.youtube.com/feeds/api/videos/3VqIoHTOIgY/comments?alt=json-in-script&format=5&callback=ShowComments"></script>

    <h3>Usuarios</h3>
    <div id="usuarios"></div>
    <script type="text/javascript" src="http://gdata.youtube.com/feeds/api/videos/3VqIoHTOIgY/comments?alt=json-in-script&format=5&callback=ShowUsers"></script>
</body>
</html>


Y por ultimo mi archivo funciones_json.js:

Código :

function ShowComments(data) {
    var feed = data.feed;
    var entries = feed.entry || [];
    var html = ['<ul>'];
    for (var i = 0; i < entries.length; i++) {
        var entry = entries[i];
        var comment = entry['content'].$t;
        html.push('<li>', comment, '</li>');
    }
    html.push('</ul>');
    document.getElementById('comentarios').innerHTML = html.join('');
}

function ShowUsers(data) {
    var feed = data.feed;
    var entries = feed.entry || [];
    var html = ['<ul>'];
    for (var i = 0; i < entries.length; i++) {
        var entry = entries[i];
        var usuario = entry['author']['name'].$t;
        html.push('<li>', usuario, '</li>');
    }
    html.push('</ul>');
    document.getElementById('usuarios').innerHTML = html.join('');
}


SI lo prueban verán que la primer función recupera todos los comentarios pero la segunda función no logra leer los usuarios de esos comentarios y no logro darme cuenta donde esta el error.

Espero puedan ayudarme, se los agradeceré mucho... Muchas gracias.

Por bugwebs

15 de clabLevel



Genero:Masculino  

Intento de Diseñador Web

chrome
Citar            
MensajeEscrito el 13 Jun 2012 05:18 pm
Esta línea:

var usuario = entry['author']['name'].$t;

Ahí entry['author'] es un array con índice numérico, no un asociativo, cuyo valor es un objeto, me parece que lo que quieres hacer es:

var usuario = entry['author'][0].name.$t;

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 02 Jul 2012 06:58 pm
Muchas gracias por la ayuda, disculpas en la demora de la contestación. Gracias a la ayuda que recibí acá pude resolver este problemita.

Muchas gracias. Saludos.

Por bugwebs

15 de clabLevel



Genero:Masculino  

Intento de Diseñador Web

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.