Foros del Web » Programando para Internet » Javascript »

llenar arreglo con contenido tipo JSON

Estas en el tema de llenar arreglo con contenido tipo JSON en el foro de Javascript en Foros del Web. hola, como puedo llenar un arreglo de la siguiente forma: Código HTML: [ { caption: 'desert.jpg', width: '120px', url: 'http://localhost/avatar/delete', // server delete action key: ...
  #1 (permalink)  
Antiguo 02/05/2017, 14:39
 
Fecha de Ingreso: septiembre-2005
Mensajes: 1.289
Antigüedad: 19 años, 1 mes
Puntos: 3
Pregunta llenar arreglo con contenido tipo JSON

hola, como puedo llenar un arreglo de la siguiente forma:

Código HTML:
[
    {
        caption: 'desert.jpg', 
        width: '120px', 
        url: 'http://localhost/avatar/delete', // server delete action 
        key: 100, 
        extra: {id: 100}
    },
    {
        caption: 'jellyfish.jpg', 
        width: '120px', 
        url: 'http://localhost/avatar/delete', // server delete action 
        key: 101, 
        extra: function() { 
            return {id: $('#id').val()};
        },
    }
]
Tengo un ciclo, que en realidad es un each que recorre un XML que contiene los datos q necesito por archivo, tengo este código, pero no logro llenarlo correctamente cuando es más de un elemento.

Código HTML:
$(this).find('fichero').each(function () {
                        
                        preInitialPreviewConfig.push([{
                            caption: $(this).find('caption').text(),
                            url: $(this).find('url').text(),
                            size: $(this).find('size').text()
                        }]);
});
Espero puedan ayudarme, o decirme q tipo de arreglo es, yo creo q es un bidimencional, pero no logro llenarlo como quiero.

Tiene forma de JSON, pero no es un objeto JSON.
__________________
Wow! No se que decir...

Última edición por zyon; 02/05/2017 a las 14:44
  #2 (permalink)  
Antiguo 02/05/2017, 15:14
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: llenar arreglo con contenido tipo JSON

El error está en que añades al arreglo principal otro arreglo con un objeto como contenido. Tan solo deberías añadir el objeto, sin los [].

__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 02/05/2017, 15:50
 
Fecha de Ingreso: septiembre-2005
Mensajes: 1.289
Antigüedad: 19 años, 1 mes
Puntos: 3
Respuesta: llenar arreglo con contenido tipo JSON

Alexis88, ya lo intenté como lo dices, creo que no me funciona el push() cuando el arreglo no tiene valores en un principio, tendrás alguna otra sugerencia?

Cuando meto así el arreglo directamente me funciona correctamente,

Código HTML:
preInitialPreviewConfig = [{
                            "caption": "Muzzy in Gondoland"
                        }, {
                            "caption": "Muzzy Come Back"
                        }];
pero no encuentro la manera de asignarle los valores de una manera dinámica por medio de un ciclo o una iteración ya que el contenido dependerá de lo captura en base de datos.
__________________
Wow! No se que decir...
  #4 (permalink)  
Antiguo 02/05/2017, 16:34
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: llenar arreglo con contenido tipo JSON

La variable preInitialPreviewConfig inicialmente debería tener asignado un arreglo vacío:
Código Javascript:
Ver original
  1. var preInitialPreviewConfig = [];

Y ya luego insertarías los objetos. Seguramente no funciona el método .push() porque no inicializaste la variable con un arreglo.

__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Etiquetas: arreglo, contenido, forma, json, text, tipo, url
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 18:16.